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

问题描述 投票:2回答:2

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

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

objective-c cocoa swift nstableview
2个回答
6
投票

我想出了一个方法:

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

例如在swift中:

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

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

根据Elwisz的评论,另一种方法是实现NSTableRowView的drawBackgroundInRect :.


0
投票

在Interface Builder中以编程方式将NSTableView.rowHeight设置为一个非常大的数字。

然后实施

#pragma mark - NSTableViewDelegate

- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row{
    return 60;
}
© www.soinside.com 2019 - 2024. All rights reserved.