我有一个带有 NSWindowController
的 Xcode 项目谁的contentViewController
被设置为 NSViewController
的子类.我最近删除了 NSViewController
Storyboard中的子类并替换了 contentViewController
与 NSTabViewController
子类。
现在,当我运行应用程序时,NSWindow
以 500x500 的大小打开,而不是第一个选项卡的大小。更重要的是,我在 Storyboard中看不到大小为 500x500 的 View ,而且该大小也不是以编程方式设置的。窗口本身设置为不同的大小,就像 NSTabViewController
中的 View 一样。的第一个 NSViewController
.
我假设我必须在某处设置某种约束,但如果有,我不知道在哪里/如何找到它。使用 Xcode 9.2 和 High Sierra。
在 windowDidLoad()
中以编程方式将窗口的大小设置为正确的大小工作,但如果我改变了 View 的大小,我也必须改变它,它会变老,很快。
对不起,如果这是模糊的;我真的不知道什么样的屏幕截图或代码片段会有所帮助。
最佳答案
我最近也遇到了这个令人沮丧的问题。
有几个选项可以解决此问题:
preferredContentSize
在每个自定义 View Controller 中,将选项卡的内容保存为您想要的大小。这是不灵活的,但它确实有效。// Swift
class FooViewController: ViewController {
override func viewWillAppear() {
super.viewWillAppear()
preferredContentSize = NSSize(width: 400, height: 280)
}
}
这是一个 screenshot它在 Interface Builder 中的样子。我添加了一个堆栈 View ,然后添加了 6 个约束。
希望这可以帮助。
关于macos - 将 contentViewController 设置为 NSTabViewController 后,NSWindow 以错误的大小启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516221/