如何为空项隐藏TableView网格线/分隔符

时间:2014-09-24 13:53:12

标签: objective-c cocoa swift nstableview

我有一个很大的NSTableView只有几个项目,由gridlines / separator分隔。一切都很好,除了在项目下面,是一堆网格线,空项目。如何显示存在的项目的网格线,但是只有非存在项目的简单背景?

注意:UITableView有一种设置footerView的方法 - 使用NSTableView无法实现相同的方法,否则只会将大空视图设置为页脚...

2 个答案:

答案 0 :(得分:6)

我想出了一个方法:

在界面构建器中,设置'行高' tableview的数量非常大,即10000,并使其“固定”。在委托实现tableView:heightOfRow:

e.g。在swift:

func tableView(tableView: NSTableView!, heightOfRow row: Int) -> CGFloat {
        return 50
}

这意味着没有内容的单元格太大,以至于您无法看到网格线,因为上述方法似乎只能调用现有单元格。

根据Elwisz的另一种方式' comment,是实现了NSTableRowView的drawBackgroundInRect:

答案 1 :(得分:0)

在Interface Builder中或通过编程将NSTableView.rowHeight设置为非常大的数量。

然后实施

#pragma mark - NSTableViewDelegate

- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row{
    return 60;
}