系统状态栏中的菜单被禁用
Menu in system status bar is disabled
func createStatusItem() -> NSStatusItem {
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
item.button?.image = NSImage(systemSymbolName: "archivebox.fill", accessibilityDescription: "")
item.menu = createMenu()
return item;
}
func createMenu() -> NSMenu {
let menu = NSMenu(title: "Cap Status Bar Menu")
menu.addItem(
withTitle: "Order a burrito",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "A")
menu.addItem(
withTitle: "Cancel burrito order",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "B")
menu.addItem(NSMenuItem.separator())
let i = NSMenuItem(title: "test", action: #selector(StatusBarFactory.x(_:)), keyEquivalent: "T");
menu.addItem(i)
return menu
}
这会在系统状态栏中创建菜单,但所有项目都已禁用!
有人知道怎么解决吗?非常感谢。
菜单验证未在响应链中找到任何指定操作的实现者,因此禁用它。您必须为每个菜单项指定目标:
let item = menu.addItem(
withTitle: "Order a burrito",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "A")
item.target = _instance_of_StatusBarFactory_here // like StatusBarFactory.shared
func createStatusItem() -> NSStatusItem {
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
item.button?.image = NSImage(systemSymbolName: "archivebox.fill", accessibilityDescription: "")
item.menu = createMenu()
return item;
}
func createMenu() -> NSMenu {
let menu = NSMenu(title: "Cap Status Bar Menu")
menu.addItem(
withTitle: "Order a burrito",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "A")
menu.addItem(
withTitle: "Cancel burrito order",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "B")
menu.addItem(NSMenuItem.separator())
let i = NSMenuItem(title: "test", action: #selector(StatusBarFactory.x(_:)), keyEquivalent: "T");
menu.addItem(i)
return menu
}
这会在系统状态栏中创建菜单,但所有项目都已禁用!
有人知道怎么解决吗?非常感谢。
菜单验证未在响应链中找到任何指定操作的实现者,因此禁用它。您必须为每个菜单项指定目标:
let item = menu.addItem(
withTitle: "Order a burrito",
action: #selector(StatusBarFactory.x(_:)),
keyEquivalent: "A")
item.target = _instance_of_StatusBarFactory_here // like StatusBarFactory.shared