将NSMenuItem的状态设置为On

时间:2017-08-01 17:01:12

标签: swift swift3 nsmenuitem

我创建了一个菜单栏应用程序,我想当你点击其中一个菜单栏项时,它会在关闭状态和打开状态之间切换(勾选和未勾选),但我很难在代码中执行此操作。有没有人对如何实现这一点有任何想法?

我可以看到我可以在属性检查器中设置它,但是我想在按下后将其更改为On / Off。

由于 英里

2 个答案:

答案 0 :(得分:1)

最简单,最简单的方法,几乎​​没有代码:

  1. 在您的应用委托上创建一个布尔属性(如果它更合适,可以在另一个对象上),并用' @ objc'标记它。和'动态'像这样:
  2. @objc dynamic var foo: Bool = false

    1. 在Interface Builder中,单击您的菜单项,然后转到Bindings检查器。绑定'价值'到App Delegate,将Controller Key留空,并将Model Key Path设置为属性的名称(在这种情况下,' foo')。

    2. 没有第三步。

答案 1 :(得分:0)

简单解决方案:创建IBAction

@IBAction func toggleState(_ sender: NSMenuItem) {
    sender.state = sender.state == NSOnState ? NSOffState : NSOnState
}

NSMenuItemIBAction相关联。如果响应控制器与Application Scene无关,请通过IBAction(红色多维数据集)连接First Responder