osx – NSWindowControllerNSViewController“Presentation”设置在故事板

osx – NSWindowControllerNSViewController“Presentation”设置在故事板,第1张

概述什么是Presentation选项(在属性检查器中)在StoryBoard中为Cocoa做的。 它有两个选项可供选择 >单人 >多重 当Googled的标题,结果与powerpoint演示相关 表示样式影响“显示”段。可能它影响其他segue,但我只测试了显示segue。我在OS X 10.10.5(Yosemite)与Xcode 7.1.1测试。 如果窗口控制器的呈现样式是“多个”(默认),则向 什么是Presentation选项(在属性检查器中)在StoryBoard中为Cocoa做的。

它有两个选项可供选择

>单人
>多重

当Googled的标题,结果与powerpoint演示相关

解决方法 表示样式影响“显示”段。可能它影响其他segue,但我只测试了显示segue。我在OS X 10.10.5(Yosemite)与Xcode 7.1.1测试。

如果窗口控制器的呈现样式是“多个”(默认),则向窗口控制器显示序列总是从故事板加载窗口控制器的新实例。这意味着您可以一次结束多个窗口控制器实例,每个实例在屏幕上都有自己的窗口。默认情况下,这些窗口将堆叠在彼此的顶部,因此它不会是明显的发生,直到你移动或关闭一个。

如果窗口控制器的呈现样式是“单个”,并且窗口控制器的实例已经从故事板加载,并且该窗口控制器仍然存在(可能是因为它的窗口仍在屏幕上),则显示该视图的显示控制器将不会创建新的实例。相反,Show segue会将现有窗口控制器的窗口置于前面。

如果你想要行为,例如Xcode的设备窗口,只有一个这样的窗口,这种行为是有用的。在故事板的“窗口”菜单中创建“设备”菜单项,并使用显示segue将其连接到故事板中的设备窗口控制器。将“设备”窗口控制器的呈现样式设置为单个。现在,如果已经存在第二个Devices窗口控制器,菜单项永远不会创建。

你可能想要以某种方式将窗口的excludedFromwindowsMenu属性设置为true,因此它不会在窗口菜单中出现两次(因为默认情况下它会附加到该菜单)。例如,您可以使用NSWindowController的子类设置它:

class DevicesWindowController: NSWindowController {    overrIDe func windowDIDLoad() {        super.windowDIDLoad()        window?.excludedFromwindowsMenu = true    }}

视图控制器也有一个演示风格,因为你也可以连接显示节点到视图控制器。连接到视图控制器的显示序列自动创建一个窗口控制器,以便在运行时包含视图控制器。窗口控制器的呈现风格被有效地设置为视图控制器,因此如果将视图控制器的呈现设置为Single,您将获得相同的单例行为。

据我所知,storyboard设置没有相应的公共属性或方法,你可以在代码中使用。

如果将Show segue连接到故事板引用(Xcode 7中的新引用),那么segue会忽略目标窗口控制器的表示样式,并像“Multiple”一样工作。即使目标实际上与引用位于同一故事板中,也会发生这种情况。

总结

以上是内存溢出为你收集整理的osx – NSWindowController/NSViewController“Presentation”设置在故事板全部内容,希望文章能够帮你解决osx – NSWindowController/NSViewController“Presentation”设置在故事板所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存