我有一个 NSOutlineView 的自定义子类,它使用 TextFieldCell 作为单元格。一些有子项(代表一组子项)的项目。
我想为有孩子的项目使用自定义颜色,为没有孩子的项目使用另一种自定义颜色。我试图在 IB 中更改它,但颜色仅针对子项更改,在代码中我也可以设置自定义颜色,但仅针对子项。任何人都可以帮助我吗?
我有一个 NSOutlineView 的自定义子类,它使用 TextFieldCell 作为单元格。一些有子项(代表一组子项)的项目。
我想为有孩子的项目使用自定义颜色,为没有孩子的项目使用另一种自定义颜色。我试图在 IB 中更改它,但颜色仅针对子项更改,在代码中我也可以设置自定义颜色,但仅针对子项。任何人都可以帮助我吗?
您还可以实现 NSOutlineViewDelegate 方法 - (void) outlineView:(NSOutlineView*)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn*)aTableColumn item:(id)item;
在其中,您可以有一部分类似于以下内容:
if ([self outlineView:self isGroupItem: item]){
NSColor *color;
if ([item.children count] == 0) {
color = [NSColor redColor];
}
else {
color = [NSColor blueColor];
}
[aCell setDrawsBackground:YES];
[aCell setBackgroundColor: color];
}
很抱歉格式化,我对此还是很陌生。这应该可行,因为我已经将此代码用于类似的事情。我希望这就是你要找的。
经过彻底的研究,似乎唯一的方法是覆盖子类drawRow:
上的方法NSOutlineView