0

我使用委托函数自定义了 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 的结果

不使用 heightOfRowsByItem 的结果

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

在此处输入图像描述

4

1 回答 1

0

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

于 2014-09-02T13:11:30.880 回答