NSTable ビューの次のプロパティを変更する必要があります 1 -- 色を変更: 行の色とテキストの色を選択した場合 2 -- テキストの色を変更します。行ごとに入力パラメータに依存します。
行ごとにテキストの色を変更するには、デリゲート メソッド willDisplayCell をオーバーライドする必要があります。
-- テーブルの作成 ----
pMyTableView = [[[CustomTableView alloc] initWithFrame:clipViewBounds] autorelease];
NSTableColumn* firstColumn = [[[NSTableColumn alloc] initWithIdentifier:@"firstColumn"] autorelease];
[firstColumn setWidth:35];
[pMyTableView addTableColumn:firstColumn];
NSTableColumn* secondColumn = [[[NSTableColumn alloc] initWithIdentifier:@"secondColumn"] autorelease];
[secondColumn setWidth:180];
[pMyTableView addTableColumn:secondColumn];
[pMyTableView setRowHeight:30];
[self SetContactTableDisplayAttribute];
[pMyTableView setDataSource:self];
[scrollView setDocumentView:pOnLineCTView];
[pMyTableView setDelegate:self]
;
--- その他のデリゲート方法 --------------
- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{
if([pColName isEqualToString:@"secondColumn"])
{
// Here there is some logic , to get the proper string that i wanted to display
return @"tempString";
}
}
----これがテキストの色を設定する方法です---
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {
NSString *colName = [aTableColumn identifier];
if([colName isEqualToString:@"secondColumn"]){
NSTextFieldCell *pCell = aCell;
[pCell setTextColor:[NSColor blueColor]];
}
}
上記のコードでは、ログに例外が発生し、-[NSCell setTextColor:]: unrecognized selector sent to instanceという行が表示されます テキスト フィールド セルを設定する必要がある場所のようですが、どのように、どこにあるのかわかりません、親切に私を助けて、
もう1つのことは、最初はセルの背景は必要ありませんが、セルが選択されると、背景を変更する必要があるか、ハイライトの色を言うことができます.WillDIsplayCellでも同じことができますか