swift - cocoa swift : Connect Main Menu to Preferences Window Controller & Disabling Items like Minimise in Attributes Inspector doesn't work in Xcode?

标签 swift xcode macos cocoa swift4

我有一个简单的菜单栏应用,其中有 2 个选项 - 即 PreferencesQuit

点击首选项后,它会打开一个新窗口但不显示菜单栏

我尝试从主菜单连接到窗口 Controller ,但它不起作用。

我使用 Ctrl+Drag 将它从应用程序名称拖到窗口 Controller 或 View Controller ,但它仍然不起作用。

另一个问题是我的首选项窗口正在调整大小,即使我在属性检查器中取消选中调整大小按钮也是如此。

即使最大化和最小化复选框被禁用,但它们仍然显示。

有什么解决办法吗?

最佳答案

参见NSApplication.activationPolicy

如果您希望应用的主菜单栏出现,您需要将 activationPolicy 更改为 NSApplicationActivationPolicyRegular。执行此操作后,当您的应用程序处于事件状态时,应用程序的主菜单将出现。 (它也会出现在 Dock 中。)

如果您希望仅在首选项窗口打开时发生这种情况,则需要在窗口打开时更改 activationPolicy,然后在窗口关闭时再次将其设置回来。

您不需要为此连接任何 socket ;主菜单应该已经是您的应用程序的资源,并且应该在您的应用程序启动时自动加载。

关于swift - cocoa swift : Connect Main Menu to Preferences Window Controller & Disabling Items like Minimise in Attributes Inspector doesn't work in Xcode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070180/

相关文章:

ios - 导航栏未显示在 childViewController 内

iphone - 在iphone中比较UITextField的值后如何显示警报

ios - 如何让这个垂直空间更加紧密?

ios - 当我尝试使用 tableView(moveRowAt :) 重新排序行时,TableView 行高缩小

没有太多信息的 Swift 崩溃报告

Swift 无法识别 Objective-C 枚举

swift - 为什么扩展程序无法访问 private?

java - 部署 war 文件 javax.servlet 未找到的 Tomcat 错误

macOS High Sierra 与 CAShapeLayers、NSImageView、NSTableView 冲突

ios - 将 Quartz 方法从 iOS 转换为 OSX