【问题标题】:Finder Style NSSplitVIew - Resize only right panel on Window ResizeFinder 样式 NSSplitVIew - 仅在窗口调整大小时调整右侧面板的大小
【发布时间】:2014-10-14 07:23:44
【问题描述】:

我的 ViewController 上有一个 Vertical NSSplitView 我为左控制器设置了 >=200 的宽度约束。这在某种意义上是有效的,它不会让我将它的大小设置为小于 200。但是,如果我展开表单,它会改变左右视图的大小。我希望它默认只更改右视图。因此,用户可以根据需要增加左视图,但当他们调整表单大小时,它只会调整右视图的大小。

【问题讨论】:

    标签: xcode macos cocoa nssplitview


    【解决方案1】:

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

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

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

    这是 xCode Interface Builder 的图片:

    【讨论】:

    • 如何设置 NSLayoutPriorityDefaultLow?
    • 不工作..是因为拆分视图项中的其他限制吗?
    【解决方案2】:

    您是否实现了 NSSplitViewDelegate?委托提供对大小、约束等的精确控制。

    参见 NSSplitViewDelegate

    -splitView:shouldAdjustSizeOfSubview:

    这将阻止自动调整大小

    NSSplitViewDelegate

    【讨论】:

      猜你喜欢
      • 2011-08-18
      • 2011-06-25
      • 1970-01-01
      • 2013-09-19
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多