macos – 基于NSSplitViewController的应用程序几乎从不以正确的大小启动

macos – 基于NSSplitViewController的应用程序几乎从不以正确的大小启动,第1张

概述我有这个应用程序,使用NSSplitViewController作为根,并连接NSTabViewController作为其detailViewController. 此应用程序将设置为1024×768启动.左窗格应该以320×768启动,右窗格(tabViewController所在的位置)应该以704×768启动. 从我运行此应用程序的10次,它将以不正确的大小(约500×500)启动9次.其他 我有这个应用程序,使用NssplitVIEwController作为根,并连接nstabviewController作为其detailVIEwController.

此应用程序将设置为1024×768启动.左窗格应该以320×768启动,右窗格(tabVIEwController所在的位置)应该以704×768启动.

从我运行此应用程序的10次,它将以不正确的大小(约500×500)启动9次.其他奇怪的是,这个应用程序不应该是可扩展的,但如果你将鼠标悬停在窗口边框附近,你会看到光标指示缩放.

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

这两个设置都在界面构建器上,但被忽略.

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

我该如何解决这个问题?

解决方法 我无法确定是什么导致了这个问题,但是你能够解决它的一种方法是添加一些约束. Interface Builder不允许您约束它在分割视图的左侧和右侧面板中插入的默认NSVIEw实例,因此您需要添加自己的.屏幕截图如下
取自您的演示,但在我完成以下 *** 作后:

>在左侧分割(我的内容视图)中添加了一个子视图,并将其边缘固定到其超级视图的边缘(视图Xcode自动添加到splitvIEw)
>在“我的内容视图”中添加了320像素的显式宽度约束

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

更新 – 更好的解决方案

虽然约束是解决这个问题的一种方法,但我认为问题的根源在于Interface Builder中的一些意外行为.将NssplitVIEwController对象拖动到画布上并使其成为窗口控制器的内容窗口关系的目标时,实际上并未设置拆分视图控制器的视图插座.这样做的一个后果似乎是,当您加载应用程序时,分隔符似乎正好在一侧.要解决此问题,请将上述视图插座设置为指向拆分视图:

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

总结

以上是内存溢出为你收集整理的macos – 基于NSSplitViewController的应用程序几乎从不以正确的大小启动全部内容,希望文章能够帮你解决macos – 基于NSSplitViewController的应用程序几乎从不以正确的大小启动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存