gpt4 book ai didi

macos - 基于 NSSplitViewController 的应用程序几乎永远不会以正确的大小启动

转载 作者:行者123 更新时间:2023-12-03 16:05:50 25 4
gpt4 key购买 nike

我有一个使用 NSSplitViewController 作为根的应用程序,并连接了一个 NSTabViewController 作为其详细 View Controller 。

此应用程序设置为以 1024x768 启动。左 Pane 应以 320x768 启动,右 Pane (tabViewController 所在位置)应以 704x768 启动。

我运行此应用程序 10 次,其中有 9 次会以不正确的尺寸(大约 500x500)启动。其他奇怪的事情是这个应用程序不应该是可扩展的,但是如果您将鼠标悬停在窗口边框附近,您会看到光标指示可缩放。

我希望它以正确的大小启动,并且没有可扩展选项。

这两个设置都在界面生成器上,但被忽略。

You can download a sample project that demonstrates the problem, here 。停止并运行该项目几次以查看问题。

如何解决这个问题?

最佳答案

我无法确定导致问题的原因,但解决该问题的一种方法是添加一些约束。 Interface Builder 不允许您约束它插入到 Split View的左侧和右侧面板中的默认 NSView 实例,因此您需要添加自己的实例。下面的屏幕截图取自您的演示,但在我完成以下操作之后:

  1. 向左侧拆分添加了一个 subview (我的内容 View ),并将其边缘固定到其 super View 的边缘(Xcode 自动添加到 Split View的 View )
  2. 我的内容 View 添加了 320 像素的显式宽度限制

enter image description here

当我加载应用程序时,两个分割都可见,分隔线不会移动,并且窗口无法调整大小。

更新 - 更好的解决方案

虽然约束是解决这个问题的一种方法,但我认为问题的根源在于 Interface Builder 中的一些意外行为。当您将 NSSplitViewController 对象拖到 Canvas 上,并使其成为窗口 Controller 的 content window 关系的目标时,分割 View Controller 的 view实际上并未设置 socket 。这样做的一个后果似乎是,当您加载应用程序时,分隔线似乎位于一侧。要解决此问题,请将上述 View 导出设置为指向 Split View:

enter image description here

我创建了一个 demo project其设置类似于提问者的演示应用程序中的设置。

关于macos - 基于 NSSplitViewController 的应用程序几乎永远不会以正确的大小启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190009/

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