我试图弄清楚如何在NSOutlineView中更改组节点的样式。 使用setSelectionHighlightStyle,我可以更改整个列表样式。但我想只更改组节点的样式。 我怎么能这样做?
答案 0 :(得分:3)
NSOutlineView
是NSTableView
的子类。在NSOutlineView
代理中实施tableView:willDisplayCell:forTableColumn:row:
。
在tableView:willDisplayCell:forTableColumn:row:
实现类似的内容:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
if ([aTableView isGroupRow: rowIndex]) {
//modify aCell
}
}
答案 1 :(得分:3)
当我遇到类似的问题时,@ Benedict提到的方法从未被触发过。这是因为NSOutlineView有一个单独的方法:
- (void) outlineView:(NSOutlineView*)aTableView
willDisplayCell:(id)aCell
forTableColumn:(NSTableColumn*)aTableColumn
item:(id)item;
请参阅NSOutlineViewDelegate protocol的文档。 (这个正式的协议在10.6中是新的 - 在OS X的早期版本中,这些方法在NSObject上作为一个类实现。)