2010-10-30 69 views
3

我正在寻找插入NSTableView的内容,以便表视图的顶部和第一个单元格之间存在间隙。NSTableView内容视图插图

在iOS上,这很容易与UITableView - 通过使用setContentInset :.

+0

“表格视图的顶部”究竟是什么意思?标题视图?或者你想要在标题视图之上的差距? – 2010-10-30 11:54:30

+0

这是一个没有标题视图的表格视图。我只想让第一个单元格从我定义的位置开始。 – firstresponder 2010-10-30 23:11:36

回答

1

重新打开标题并用自己的子类替换标题视图。覆盖它的-drawRect:只绘制你的背景颜色。还要重写-headerRectOfColumn:以防止绘制任何列标题。我不确定这是否防止列拖动或排序,但我敢打赌它确实。

+1

这被选为答案,但行为不一样 - 即使向下滚动,它也会始终显示彩色标题。 – Dan2552 2014-01-27 00:20:58

+0

是的,这听起来像是原来的海报想要的(特别是他接受了答案)。由于没有contentInset属性,这是最接近你将得到的,而不插入一个虚拟行或定义一个单元格视图与特殊行大小/布局的行== 0条件。 – 2014-01-27 14:21:30

0

这不是很干净,但你可以通过让第一行比其他行高。实施heightOfRow表委托方法:

- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row 
{ 
    if (row == 0) { 
    return normalRowHeight + topPadding; 
    } else { 
    return normalRowHeight; 
    } 
} 

的缺点是,你还需要实现自定义的突出显示和自定义单元格绘图考虑到第一行的额外空间。