我尝试通过点击/取消点击 NSMenuItem
来定义一个全局 bool 变量,并在标签前用勾号指示值,就像目前在 f.lux 中所做的那样(参见下图) ).
我的菜单目前构建如下,我在 NSMenuItem
文档中找不到如何实现它。
有人做过吗?
let menu = NSMenu()
menu.addItem(NSMenuItem.separator())
menu.addItem(NSMenuItem(title: "Autocheck", action: #selector(AppDelegate.autocheck(_:)), keyEquivalent: ""))
menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q"))
statusItem.menu = menu
最佳答案
方法是使用NSMenuItem
的state属性
。
最终代码为:
let menu = NSMenu()
menu.addItem(NSMenuItem.separator())
let autocheck = NSMenuItem(title: "Autocheck", action: #selector(AppDelegate.automount_bool(_:)), keyEquivalent: "")
if automount==true{
autocheck.state = NSControl.StateValue.on
}else{
autocheck.state = NSControl.StateValue.off
}
menu.addItem(autocheck)
menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q"))
statusItem.menu = menu
关于swift - NSMenuItem 给出的 bool 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51912952/