设置NSOutlineView的行颜色和高度(选择基于视图和源列表选项)

时间:2013-09-13 23:33:07

标签: nsoutlineview nstablerowview

我使用委托功能自定义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,我会得到底部图片。

enter image description here

不使用heightOfRowsByItem的结果

Outcome without using heightOfRowsByItem

编辑:我解决了这个问题,方法是将outlineView backgroundColor设置为我想要的标题行颜色,然后将其他行颜色设置为白色。这填补了这个差距,如下所示,但似乎仍然是一个解决方法。

enter image description here

1 个答案:

答案 0 :(得分:0)

解决此问题的另一种方法是设置用于标题的NSTableCellView的高度。