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

Pet*_*isu 2 macos cocoa nssplitview autolayout

我在NSSpliView上使用autolayout,设置如下图所示

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

在此输入图像描述

Dan*_*ell 6

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

  1. 调整大小时底部视图的大小保持不变

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

    保持

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

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

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

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

    self.heightConstant.constant = NSHeight(topView)

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