我有一个使用TextFieldCell作为单元格的NSOutlineView的自定义子类。一些具有子项(表示一组子项)的项。
我想有一个自定义颜色的项目与孩子和另一个自定义颜色的项目没有孩子。我试图在IB中更改它,但颜色仅针对子项更改,并且在代码中,我还可以设置自定义颜色,但仅针对子项。有人能帮我吗?
发布于 2013-03-29 22:00:42
经过彻底的研究,唯一的方法似乎是覆盖NSOutlineView
子类上的drawRow:
方法
发布于 2013-04-01 16:04:06
也可以实现NSOutlineViewDelegate方法-(空) 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];
}
很抱歉格式化,我在这方面还是个新手。这应该是可行的,因为我已经将这段代码用于类似的事情。我希望这就是你要找的。
https://stackoverflow.com/questions/15647211
复制