我有一个很大的NSTableView只有几个项目,由gridlines / separator分隔。一切都很好,除了在项目下面,是一堆网格线,空项目。如何显示存在的项目的网格线,但是只有非存在项目的简单背景?
注意:UITableView有一种设置footerView的方法 - 使用NSTableView无法实现相同的方法,否则只会将大空视图设置为页脚...
答案 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;
}