我正在尝试在 macOS 上构建一个菜单栏应用程序。
我似乎无法弄清楚为什么某些菜单项是禁用的... 截图:
正如您所看到的,退出菜单项已启用,当单击时退出应用程序。然而,首选项项目被禁用。我的代码
AppDelegate.swift:
let menuBarItem = NSStatusBar.system().statusItem(withLength: NSSquareStatusItemLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
menuBarItem.button?.image = NSImage(named: "MenuBarIcon")
menuBarItem.menu = MenuBarMenu()
}
MenuBarMenu.swift:
class MenuBarMenu: NSMenu {
init() {
super.init(title: "Menu")
self.addItem(withTitle: "Preferences...", action: #selector(MenuBarActions.openPreferencesWindow(_:)), keyEquivalent: "")
self.addItem(NSMenuItem.separator())
self.addItem(withTitle: "Quit", action: #selector(MenuBarActions.terminate(_:)), keyEquivalent: "")
}
required init(coder decoder: NSCoder) {
fatalError("init(coder:) has not been impemented")
}
}
class MenuBarActions {
@objc static func terminate(_ sender: NSMenuItem) {
NSApp.terminate(sender)
}
@objc static func openPreferencesWindow(_ sender: NSMenuItem) {
print("preferences")
}
}
我正在使用完全相同的方式创建MenuBarItems和选择器的相同结构,因此我对这种不一致感到有些困惑。为什么会发生这种情况,我该如何解决这个问题?