带有Autolayout的NSSplitView,可防止比例调整大小

时间:2014-03-20 11:30:51

标签: macos cocoa autolayout nssplitview

我正在使用自动布局与NSSpliView,设置如下图所示

拆分视图位于一个可以调整大小的窗口中,当调整大小时,分隔符的比例变化为50:50,如何更改,以便底部视图的高度保持不变并且顶视图调整大小(但不超过124px)但是仍然可以通过拖动分割手动更改它吗?

enter image description here

1 个答案:

答案 0 :(得分:6)

所以回顾一下你有三个要求,

  1. 底部视图在调整大小时保持相同的大小

    如果是顶视图,请降低保持优先级(选择NSSplitView以获取正确的检查器)

    Holding

  2. 顶视图无法调整大小超过124px

    添加不等式约束,将视图的高度设置为小于或等于124px。您可以在IB中执行此操作。在控制器类的自定义视图中为下一步创建此约束的IBOutlet也是一个好主意......

  3. 移动分隔线时,顶视图应该能够小于124px。

    我不完全确定,但请检查NSSplitView委托方法,例如splitView:resizeSubviewsWithOldSize:splitViewDidResizeSubviews:。使用分隔符调整大小时,委托方法应将高度约束覆盖为当前调整大小的大小。所以类似于委托方法中的以下内容

    self.heightConstant.constant = NSHeight(topView)

    或者您可以删除约束并在以后需要时重新添加。