单击shift按钮时,我正在尝试修改NSStatusItem中的NSMenuItems。基本上我想将文本从“MenuItem123”修改为“Shift MenuItem123”
我尝试添加
NSEvent.addLocalMonitorForEventsMatchingMask
和
NSEvent.addGlobalMonitorForEventsMatchingMask
适用于我的常规窗口应用程序,但对于NSStatusItem / NSMenuItems,不会调用或调用完成块,但仅在未显示菜单时才会调用。
答案 0 :(得分:5)
您无需收听事件即可显示备用菜单项。您只需创建两个菜单项并将第二个菜单项标记为备用项,并将其keyEquivalentModifierMask
设置为NSShiftKeyMask
。假设您有一个名为statusItem
的变量,您可以使用以下代码段:
let menu = NSMenu();
menu.addItemWithTitle("MenuItem123", action:"test:", keyEquivalent:"")
if let shiftItem = menu.addItemWithTitle("Shift MenuItem123", action:"test:", keyEquivalent:"") {
shiftItem.alternate = true
shiftItem.keyEquivalentModifierMask = Int(NSEventModifierFlags.ShiftKeyMask.rawValue)
}
statusItem.menu = menu