1

我正在尝试掌握 NSViewConstraints。我很喜欢他们; 它们对我来说比以前的系统更有意义。

我有一个窗口,顶部有一个 22 像素高的子视图,下面是一个无边框的无边框 NSTabView。目标是让顶部子视图永远不会调整其高度。

没有任何限制,自动格式化会处理大部分工作。唯一的麻烦是调整窗口大小会导致上部子视图改变其高度。我看似合乎逻辑的反应是将高度固定为 22。我只保留了边距限制,因为 NSTabView 已经很好地处理了调整大小。

通过固定上部子视图的高度,窗口现在拒绝垂直调整大小!我在任何地方都没有看到任何文档说明这是预期的或其背后的逻辑。我已经弄乱了各种约束配置来克服它,但没有任何效果。

两个问题:

  1. 为什么固定一个子视图的高度冻结窗口高度调整大小?Xcode 的逻辑是什么?
  2. 什么约束设置将实现所需的定位?
4

1 回答 1

1

我刚刚测试了按照您的描述创建一个窗口,并固定 22px 视图的高度。这为视图的高度创建了一个用户约束。

但是,它还在父视图(窗口的内容视图)上创建了 2 个约束,一个用于 Top Space 到 22px 视图,另一个用于底部空间到 22px 视图。这些约束是阻止您调整窗口大小的原因。您应该选择第二个约束并将其删除(但保留第一个约束,因为它很好)。

于 2012-10-18T00:53:08.273 回答