使用 Interface Builder 我有一个带有多行 NSTextField (标签)的 NSView,在其正下方有一个 NSComboBox。由于标签的高度是动态的(例如,取决于所使用的翻译),组合框的位置也是动态的(因为组合框的位置使用约束链接到标签)。
我试图在自动布局后获得组合框的正确位置。这样做一定很容易,但由于某种原因我无法让它发挥作用。我可以使用 [NSViewfittingSize] 获取标签的调整大小,但 [NSViewframe] 返回错误的 Y 位置(它只返回 IB 中使用的位置)。所以我的问题基本上是如何在自动布局后获得重新定位的框架?
仅供引用,我正在覆盖的 [NSView loadView] 方法中请求框架属性。
感谢您的帮助!
最佳答案
NSView 没有 loadView 方法。你指的是 NSViewController 的 loadView 吗?如果是这样,我认为现在获得实际框架还为时过早。您可以尝试覆盖 updateConstraints 并在那里检查。在 iOS 中,您可以在 viewDidAppear 中执行此操作: -- 我不确定 OS X 中的等效项是什么。另一种可能性是在 viewDidMoveToWindow 中。
关于macos - 使用自动布局时如何获得正确的框架原点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789273/