1

在 OS X 中,我有一个NSSplitView垂直堆叠的 3 个子视图:A、B、C。

视图 B 具有最小高度约束。如果我向上推动 BC 分隔线,它会在达到约束时停止,这是应该的。

但是,我希望分频器 AB 也向上推,当 min. 达到了 B 的高度约束(并且 A 中没有其他约束)。

相反,如果有最大值。B 中的高度限制,我将 BC 分隔器向下拉,我希望分隔器 AB 跟随(其他限制允许)。

有什么办法可以通过 AutoLayout 实现这一点?如果没有,您能否建议一种方法/指向相关资源?

谢谢。

4

1 回答 1

1

如果您查看在拖动期间添加到 SplitView 的约束,您会注意到 NSSplitView 添加了必需的约束,这些约束将非分隔线相邻视图保持在当前位置。

"<NSLayoutConstraint:0x6100000827b0 H:|-(512.5)-[View3]   (Names: View3:0x600000120500, '|':MySplitView:0x6000001203c0 )>"

在拖动结束时,这些被删除。

如果未添加这些约束或仅以较低的优先级添加这些约束,您将获得您所描述的行为。不幸的是,由于它们是必需的,因此甚至没有可推荐的解决方法(例如手动添加更高优先级的约束)。


您可以提交增强请求,让 NSSplitView 对这些约束提供更多控制。

于 2014-07-04T18:13:05.177 回答