我有这个应用程序,它使用NSSplitViewController
作为根并且有一个NSTabViewController
作为其详细视图控制器连接。
此应用程序设置为以 1024x768 启动。左窗格应以 320x768 启动,右窗格(tabViewController 所在位置)应以 704x768 启动。
从我运行这个应用程序 10 次开始,有 9 次它会以不正确的尺寸(大约 500x500)启动。其他奇怪的事情是这个应用程序不应该是可扩展的,但是如果您将鼠标悬停在窗口边框附近,您会看到光标指示可以缩放。
我希望它以正确的大小启动,并且没有可扩展的选项。
这两个设置都在界面生成器上,但都被忽略。
您可以在此处下载演示该问题的示例项目 http://www.filedropper.com/split_1。停止并运行该项目几次以查看问题。
我该如何解决这个问题?
我无法确定导致问题的原因,但解决该问题的一种方法是添加一些约束。 Interface Builder 不允许您约束它插入到拆分视图的左侧和右侧面板中的默认 NSView 实例,因此您需要添加自己的实例。下面的屏幕截图
取自您的演示,但在我完成以下操作之后:
- 向左分割添加了一个子视图(我的内容视图),并将其边缘固定到其超级视图的边缘(Xcode 视图自动添加到 splitview 中)
- 添加了 320 像素的显式宽度约束我的内容视图
当我加载应用程序时,两个分割都可见,分隔线不会移动,并且窗口无法调整大小。
更新-更好的解决方案
虽然约束是解决这个问题的一种方法,但我认为问题的根源在于 Interface Builder 中的一些意外行为。当您拖动NSSplitViewController
对象到画布上,并使其成为窗口控制器的目标content window
关系,分割视图控制器的view
实际上并未设置插座。这样做的一个后果似乎是,当您加载应用程序时,分隔线似乎位于一侧。要解决此问题,请将上述视图出口设置为指向拆分视图:
我创建了一个演示项目 https://github.com/pazzer/SpaceDogSplitView其设置类似于提问者的演示应用程序中的设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)