5

我需要更改我的 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 看起来我需要在某个地方设置文本字段单元格,但是我不知道如何以及在哪里,请帮助我,

另一件事是,最初我不需要单元格的任何背景,但是一旦选择了单元格,那么我可能还需要更改背景或者您可以说突出显示颜色,我也可以在 WillDIsplayCell 中获得相同的颜色吗

4

1 回答 1

7
于 2011-01-25T23:50:27.830 回答