NSTableview更改高亮颜色

时间:2013-10-24 07:41:16

标签: objective-c macos cocoa nstableview

我正在开发一个MAC应用程序并包含tableView。 想要将所选行的颜色更改为黄色。

2 个答案:

答案 0 :(得分:14)

在表格视图中设置此项:

[yourtableview setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];

并将以下NSTableView的委托方法实现为:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
    if ([[aTableView selectedRowIndexes] containsIndex:rowIndex]) 
    {
       [aCell setBackgroundColor: [NSColor yellowColor]];   
    } 
    else 
    {
       [aCell setBackgroundColor: [NSColor whiteColor]];
    } 
    [aCell setDrawsBackground:YES];
}  

答案 1 :(得分:0)

如果您只想突出显示列的单个单元格,请执行以下操作: -

- (void)tableView:(NSTableView *)tableView
  willDisplayCell:(id)cell
   forTableColumn:(NSTableColumn *)tableColumn
              row:(NSInteger)row
{
    if ([[tableColumn identifier] isEqualToString:@"yourColumm"])
    {
        [cell setBackgroundColor:[NSColor yelloColor]];
    }
}