【发布时间】:2017-08-01 17:01:12
【问题描述】:
我创建了一个菜单栏应用程序,我希望当您单击其中一个菜单栏项时,它会在关闭状态和打开状态(勾选和未勾选)之间切换,但我在代码中很难做到这一点。有人对如何实现这一点有任何想法吗?
我可以看到我可以在属性检查器中设置它,但我想在按下它后将其更改为开/关。
谢谢 里程
【问题讨论】:
标签: swift swift3 nsmenuitem
我创建了一个菜单栏应用程序,我希望当您单击其中一个菜单栏项时,它会在关闭状态和打开状态(勾选和未勾选)之间切换,但我在代码中很难做到这一点。有人对如何实现这一点有任何想法吗?
我可以看到我可以在属性检查器中设置它,但我想在按下它后将其更改为开/关。
谢谢 里程
【问题讨论】:
标签: swift swift3 nsmenuitem
简单的解决方案:创建一个IBAction
@IBAction func toggleState(_ sender: NSMenuItem) {
sender.state = sender.state == .on ? .off : .on
}
将NSMenuItem 连接到IBAction。如果响应控制器与Application Scene无关,则通过First Responder(红色立方体)连接IBAction
【讨论】:
didSet 观察者并在其中调用您的 不同函数。
几乎没有代码的最简单和最简单的方法:
@objc dynamic var foo: Bool = false
在 Interface Builder 中,单击您的菜单项,然后转到 Bindings 检查器。将“value”绑定到 App Delegate,将 Controller Key 留空,并将 Model Key Path 设置为属性的名称(在本例中为“foo”)。
没有第三步。
【讨论】: