我使用委托功能自定义NSOutlineView,使用以下内容调整组项的行高和颜色:
- (void)outlineView:(NSOutlineView *)outlineView didAddRowView:(NSTableRowView *)rowView forRow:(NSInteger)row {
LOG(@"didAddRowView called");
if ([self outlineView:outlineView isGroupItem:[outlineView itemAtRow:row]])
[rowView setBackgroundColor:[NSColor controlColor]];
}
- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item {
if ([self outlineView:outlineView isGroupItem:item])
return 24.0;
else
return 36.0;
}
这几乎可行,结果如下所示。在一个部分的最后一行和下一个部分标题之间有一个小的间隙。任何人都可以了解这可能是什么以及如何删除它。它可能是某种类型的页脚,如果有的话,是否有用于调整它的API?如果我完全删除outlineView:heightOfRowsByItem
,我会得到底部图片。
不使用heightOfRowsByItem的结果
编辑:我解决了这个问题,方法是将outlineView backgroundColor设置为我想要的标题行颜色,然后将其他行颜色设置为白色。这填补了这个差距,如下所示,但似乎仍然是一个解决方法。
答案 0 :(得分:0)
解决此问题的另一种方法是设置用于标题的NSTableCellView的高度。