NSTableview更改高亮颜色

Rag*_*hav 7 macos cocoa objective-c nstableview

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

Neh*_*eha 14

在表视图上设置:

[yourtableview setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
Run Code Online (Sandbox Code Playgroud)

并实现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];
}  
Run Code Online (Sandbox Code Playgroud)

  • 假设您正在谈论基于单元格的表,这与上一个答案的原因不同,除非您的单元格没有填充任何填充(甚至可能不是这样).要更改行突出显示,请覆盖表格的highlightSelectionInClipRect:方法并自行绘制背景颜色,如下所示:http://stackoverflow.com/questions/7038709/change-highlighting-color-in-nstableview-in-cocoa (5认同)