cocoa - 高度约束阻止调整 NSWindow 的大小

标签 cocoa xcode4 interface-builder nswindow

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

我有一个窗口,一个跨越其顶部的 22 像素高的 subview ,以及其下方的无边框 NSTabView。目标是让顶部 subview 永远不会调整其高度。

在没有任何限制的情况下,自动格式化可以完成大部分工作。唯一的麻烦是调整窗口大小会导致上部 subview 改变其高度。我看似合乎逻辑的 react 是将高度固定在 22。我单独保留了边距约束,因为 NSTabView 已经可以很好地处理调整大小了。

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

两个问题:

  1. 为什么固定一个 subview 的高度会卡住窗口高度的大小调整? Xcode 的逻辑是什么?
  2. 什么约束设置可以实现所需的定位?

最佳答案

我刚刚测试了按照您的描述创建一个窗口,并固定 22px View 的高度。这对 View 的高度创建了一个用户限制。

但是,它还在父 View (窗口的内容 View )上创建了 2 个约束,一个用于 22px View 的顶部空间,第二个用于 22px View 的底部空间。这些限制会阻止您调整窗口大小。您应该选择第二个约束并将其删除(但保留第一个约束,因为它没问题)。

关于cocoa - 高度约束阻止调整 NSWindow 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945455/

相关文章:

ios - 在 XCode 4 中构建和运行 App 时出现警告对话框 "The Service is Invalid"

ios - 使用 Interface Builder 子类化与类别

objective-c - 从 iPhone 向 Mac 发送消息

objective-c - KVC 和属性有什么区别?

objective-c - NSTextField - 黑色背景上的白色文本,但黑色光标

iphone - Xcode 4 -- "no provisioned iOS device is connected"与 iPod touch 2

xcode - 默认情况下,在 Xcode 中让文件成为多个目标的一部分

xcode - Interface Builder/跨平台中的自定义 UIView

iPhone - 加载新 View 和释放的对象

cocoa - 最小绘画程序的示例代码(MS Paint 风格)