2011-02-22 15 views
4

NSTableViewの下に「追加」ボタンがあります。ボタンをクリックすると、新しい行がテーブルに追加され、ユーザーの入力準備が整います。透明な背景を持つ行を追加する

行は白色で表示されます。行の色を透明な色に設定できますか?これは可能ですか?私はこれを行う方法を理解することはできません。

透明であるように私のテーブルを設定するための私のコード:私はあなたがしようとしているものを達成するためにいくつかのサブクラス化を行う必要があるかもしれないと思う

[myTableArray addObject:@""]; 
[myTable reloadData]; 
[myTable editColumn:0 row:[myTableArray count]-1 withEvent:nil select:YES]; 
+0

私の作品、これを可能 – Swati

答えて

0

:行を追加するための

[myTable setBackgroundColor:[NSColor clearColor]]; 
[[myTable enclosingScrollView] setDrawsBackground: NO]; 

コードする。

あなたのNSTableViewをサブクラス化することで、あなたはpreparedCellAtColumnを上書きすることができます。行:そうのような方法:

- (NSCell*) preparedCellAtColumn:(NSInteger)column row:(NSInteger)row { 
    NSTextFieldCell *edit_field; 

    edit_field = (NSTextFieldCell*) [super preparedCellAtColumn:column row:row]; 
    if ([self editedRow] == row && [self editedColumn] == column ) { 
     [edit_field setBackgroundColor:[NSColor clearColor]]; 
     [edit_field setDrawsBackground:NO]; 

    } 

    return edit_field; 
} 

はしかし、NSTableViewのドキュメントでは、あなたのセルに色をリセットするようだと呼ばれる別の方法を、持っていることを示しています。 (editWithFrame:inView:editor:delegate:event :)このメソッドをオーバーライドするNSTextViewCellのサブクラスを作成すると、探しているものができます。私はこれを見つけたドキュメントを検索

EDIT

受信機は、テキスト型NSCellのオブジェクトでない場合は、何も編集は実行されません。それ以外の場合は、フィールドエディタ(textObj)のサイズがaRectになり、スーパービューがcontrolViewに設定されるため、受信者を正確にカバーします。

この場合、カスタマイズする必要があるのはフィールドエディタです。これは、NSTableViewまたはセルで実行している表示の変更をカバーしています。

フィールドエディタはウィンドウのデリゲートのメソッドwindowWillReturnFieldEditorによって返されます。これは、あなたがこれを試みNSTableView

EDIT に戻す前に編集したセルのプロパティを設定させてください

:toObject無駄ませんが、助けるかもしれない:

-(id) windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)client{ 
    NSText *editor = [window fieldEditor:YES forObject:client]; 
    [editor setBackgroundColor:[NSColor clearColor]]; 
    [editor setDrawsBackground:NO]; 
    return [editor autorelease]; 
} 
+0

thabks iは、すぐに私は戻って、このプロジェクトに乗るとしてこれをしようとするウル答えをfrとあります。 – Swati

1

は、セルの背景色透明

を設定してみてください

[セルsetBackgroundColor:[UIColor clearColor]];

それは誰もがいくつかの助けを提供することができます

+1

これはタッチアプリで動作しますが、私は非タッチのココアアプリが必要です:) – Swati

関連する問題