我喜欢在npm install
中实现自己的列调整大小方案。我得到了这个主要工作,但与垂直滚动条的动态外观斗争。
想象一下,我希望有一个包含两列的表格,其中第一列总是占据1/3,另一列则占据可见空间的剩余2/3。
我已尝试通过在NSTableView
的子类中实现tile
方法来实现此目的,如下所示:
NSTableView
我相信我必须调用- (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];
}
以根据需要添加滚动条。
然而,问题在于,当我调整窗口大小(从而也调整TableView的大小)时,水平滚动条有时是剪辑视图的一部分,有时不会导致闪烁。
以下是调整窗口大小时的示例:
结果很好:
糟糕的结果(注意事实是有一个水平滚动条):
当我继续调整窗口大小时,表格视图会不断添加和删除水平滚动条,从而闪烁。这是我想要避免的。
我想知道原始[super tile]
函数如何处理这个问题。我如何启用它以便我不会出现闪烁,但是根据需要显示滚动条?
答案 0 :(得分:0)
原来解决方案非常简单:
我应该提到我已将tableview的columnAutoresizingStyle
设置为NSTableViewNoColumnAutoresizing
- 因为我想管理自己的调整大小,因此我认为我必须转换Appkit& #39;正在处理。
但不是 - 我应该将其设置为NSTableViewLastColumnOnlyAutoresizingStyle
,然后按预期工作。
我还将[super tile];
移到了函数的顶部。