所有,

我有2列的NSOutlineView。该视图的大小应使其足够宽以覆盖整个显示器。

该视图包含2列。第二列具有固定的宽度。

假设屏幕的宽度为1920,第二列的宽度为100。那么我希望第一列的宽度为1820。
也就是说,column_width1 + column_width2 = screen_width,因此没有滚动条可见。

用代码最简单的方法是什么?

(我正在使用Objective-C可可API)。

TIA!

最佳答案

IB中的设置,无需代码:


将大纲视图的“列大小”设置为“仅第一列”。
将第一列的“调整大小”设置为“使用表自动调整大小”。
将第二列的“调整大小”设置为“无”。
将第二列的宽度设置为100。
更改第一列的宽度,以使这些列完全适合轮廓视图内。水平滚动条不处于活动状态,并且第二列和大纲视图的右侧之间没有空格。


代码中的相同设置:

outlineView.columnAutoresizingStyle = NSTableViewFirstColumnOnlyAutoresizingStyle;
outlineView.tableColumns[0].resizingMask = NSTableColumnAutoresizingMask;
outlineView.tableColumns[1].resizingMask = NSTableColumnNoResizing;
outlineView.tableColumns[1].width = 100;
[outlineView sizeToFit];


通过这些设置来调整轮廓视图的大小,以调整第一列的大小,第二列固定在轮廓视图的右侧。

08-18 08:39