Finder样式NSSplitVIew - 仅在Window Resize上调整右侧面板的大小

时间:2014-10-14 07:23:44

标签: xcode macos cocoa nssplitview

我在ViewController上有一个Vertical NSSplitView我为左控制器设置了一个> = 200的宽度约束。这是因为它不会让我的尺寸小于200。但是,如果我扩展表单,它会改变左侧和右侧的大小。正确的观点。我希望它默认只更改右视图。因此,如果用户愿意,用户可以增加左视图,但是当他们调整表单大小时,它只会调整右视图的大小。

2 个答案:

答案 0 :(得分:4)

您应该更改拆分窗格的保持优先级。

这些描述了窗格希望保持相同大小的优先级,主要用于描述拆分视图更改大小时哪个拆分窗格应该增加。

对于每个窗格,它们默认为NSLayoutPriorityDefaultLow,但是通过将右窗格设置为较低的窗格(NSLayoutPriorityDefaultLow - 1),您将获得右窗格调整大小的行为,而左窗格保持不变。

这是xCode Interface Builder的图片: enter image description here

答案 1 :(得分:0)

您是否实施了NSSplitViewDelegate?代表提供对尺寸,约束等的精确控制。

参见NSSplitViewDelegate

-splitView:shouldAdjustSizeOfSubview:

会阻止自动调整大小

NSSplitViewDelegate