1

我有一个 NSOutlineView 的自定义子类,它使用 TextFieldCell 作为单元格。一些有子项(代表一组子项)的项目。

我想为有孩子的项目使用自定义颜色,为没有孩子的项目使用另一种自定义颜色。我试图在 IB 中更改它,但颜色仅针对子项更改,在代码中我也可以设置自定义颜色,但仅针对子项。任何人都可以帮助我吗?

4

2 回答 2

0

您还可以实现 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];
}

很抱歉格式化,我对此还是很陌生。这应该可行,因为我已经将此代码用于类似的事情。我希望这就是你要找的。

于 2013-04-01T16:04:05.903 回答
0

经过彻底的研究,似乎唯一的方法是覆盖子类drawRow:上的方法NSOutlineView

于 2013-03-29T22:00:42.440 回答