gpt4 book ai didi

macos - 将 contentViewController 设置为 NSTabViewController 后,NSWindow 以错误的大小启动

转载 作者:行者123 更新时间:2023-12-04 18:01:22 25 4
gpt4 key购买 nike

我有一个带有 NSWindowController 的 Xcode 项目谁的contentViewController被设置为 NSViewController 的子类.我最近删除了 NSViewController Storyboard中的子类并替换了 contentViewControllerNSTabViewController子类。

现在,当我运行应用程序时,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)
    }
    }
  • 我在 this 中找到了一个更好的解决方案的提示所以回答。您可以向处理选项卡内容的 View Controller 的主 View 添加 subview (stackview、nsview 等...),然后添加将其固定到每个边缘的约束并添加设置大小的约束。

  • 这是一个 screenshot它在 Interface Builder 中的样子。我添加了一个堆栈 View ,然后添加了 6 个约束。

    希望这可以帮助。

    关于macos - 将 contentViewController 设置为 NSTabViewController 后,NSWindow 以错误的大小启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516221/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com