我想实现一个NSTableView
我自己列大小调整方案。我得到这个主要工作,但与垂直滚动条的动态外观斗争。定制columnAutoresizingStyle与NSTableView的
想象我想有一个表有两列,其中第一始终占据1/3,其他的可视空间的剩余2/3。
我已经尝试通过在NSTableView
一个子类实现tile
方法如下做到这一点:
- (void)tile
{
NSClipView *container = (NSClipView*) self.superview;
NSSize spacing = self.intercellSpacing;
CGFloat avail = container.frame.size.width;
CGFloat cw0 = (int) (avail/3);
CGFloat cw1 = avail - cw0;
self.tableColumns[0].width = cw0 - spacing.width;
self.tableColumns[1].width = cw1 - spacing.width;
[super tile];
}
我相信我有调用[super tile]
有滚动条得到补充是必要的。
但问题是,当我调整窗口大小(并因此调整了TableView的大小)时,水平滚动条有时是剪辑视图的一部分,有时不是,导致闪烁。
下面举例说明调整窗口大小时,我得到:
好的结果:
坏的结果(请注意一个事实,即有一个水平滚动条):
当我不断调整窗口的大小时,表视图不断添加和删除水平滚动条,因此闪烁。这是我想要避免的。
我不知道原来tile
功能如何处理这一点。我将如何启用它,以便我不会闪烁,但是会根据需要显示滚动条?
覆盖' - [NSTableView] sizeLastColumnToFit'? – Willeke