swift - NSMenuItem 给出的 bool 变量

标签 swift cocoa

我尝试通过点击/取消点击 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

f.lux

最佳答案

方法是使用NSMenuItemstate属性。 最终代码为:

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/

相关文章:

swift - 在 Swift 中进行子类化时理解 init()

ios - UIApplication keyWindow 行为已更改

cocoa - NSImage 透明度

ios - 如何根据 JSON 数组中的字段对表格 View 单元格进行分组

json - 如何将变量的值保留在函数之外?

objective-c - COCOA:在顶部显示一个窗口而不给予它焦点

Cocoa NSOutlineView 和拖放

swift - 当我在格式化中使用包装字符串时,我希望出现编译器警告或错误

swift - 如何在不丢失顺序的情况下删除 Swift 中字符串的重复行?

objective-c - appendBezierPathWithGlyph 在 [NSBezierPath currentPoint] 中失败