在OS X中,我有一个NSSplitView
,其中有3个垂直堆叠的子视图:A,B,C。
视图B具有最小高度约束。如果我向上推动B-C分频器,它会在达到约束时停止,就像它应该的那样。
但是,我想让分频器A-B向上推,当分钟时。达到B的高度约束(并且A中没有其他约束)。相反,如果有最大值。 B和I中的高度约束向下拉动B-C分频器,我希望跟随分频器A-B(其他约束条件允许)。
有没有办法用AutoLayout实现这个目标?如果没有,你能否建议一个方法/指向相关资源?
感谢。
答案 0 :(得分:1)
如果查看在拖动过程中添加到SplitView的约束,您会注意到NSSplitView添加了必需的约束,这些约束将非分割器相邻视图保持在当前位置。
"<NSLayoutConstraint:0x6100000827b0 H:|-(512.5)-[View3] (Names: View3:0x600000120500, '|':MySplitView:0x6000001203c0 )>"
在拖动结束时,这些将被删除。
如果未添加或仅以较低优先级添加这些约束,您将获得所描述的行为。不幸的是,由于它们是必需的,因此甚至没有可推荐的解决方法(例如手动添加更高优先级的约束)。
您可以提交增强请求,让NSSplitView提供对这些约束的更多控制。