我有一个很大的NSTableView只有几个项目,由gridlines /分隔符分隔。一切都很好,除了在项目下面,是一堆网格线,空项目。如何显示存在的项目的网格线,但是只有非存在项目的简单背景?
注意:UITableView有一种设置footerView的方法 - 使用NSTableView不可能使用相同的方法,否则只会将大空视图设置为页脚...
我想出了一个方法:
在界面构建器中,将tableview的“行高”设置为一个非常大的数字,即10000,并使其“固定”。在委托实现tableView:heightOfRow:
例如在swift中:
func tableView(tableView: NSTableView!, heightOfRow row: Int) -> CGFloat {
return 50
}
这意味着没有内容的单元格太大,以至于您无法看到网格线,因为上述方法似乎只能调用现有单元格。
根据Elwisz的评论,另一种方法是实现NSTableRowView的drawBackgroundInRect :.
在Interface Builder中以编程方式将NSTableView.rowHeight
设置为一个非常大的数字。
然后实施
#pragma mark - NSTableViewDelegate
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row{
return 60;
}