Reputation: 1339
I try to define a global boolean variable by a click/unclick on a NSMenuItem
and indicate the value just before the label with a tick, as currently done in f.lux (cf. picture below).
My menu is currently build as below and I do not find on NSMenuItem
documentation how to achieve it.
Has someone already done it ?
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
Upvotes: 0
Views: 84
Reputation: 318884
The way is to use the state property
of NSMenuItem
.
Final code is:
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
Upvotes: 1