以下代码在我的沙箱中完美运行:
@IBAction func filterClicked(sender: NSButton) {
println(sender.state)
if let clickEvent = NSApp.currentEvent! {
if Int(clickEvent.modifierFlags.rawValue) & Int(NSEventModifierFlags.ControlKeyMask.rawValue) != 0 {
if sender.state == NSOffState {
sender.state == NSOnState
}
}
}
println(sender.state)
}
连接按钮是开 - 关按钮。所以当它打开并且我按住它时它会保持打开状态。
不幸的是,在我真正需要它的应用程序中,它不起作用。我在sandbox和prod应用程序中检查了两个按钮的绑定/设置是相同的。调试器显示了这一点
sender.state == NSOnState
根本没有执行。 state
留下NSOffState
。啃我的键盘没有帮助。任何的想法?
您没有为按钮状态指定任何值。
sender.state = NSOnState
更新Swift 4.2
sender.state = NSControl.StateValue.on
更改swift 4的单选按钮状态(检查状态):
@IBOutlet weak var checkedButton: NSButton!
checkedButton.state = NSControl.StateValue.off // State = off
checkedButton.state = NSControl.StateValue.on // State = on
我知道这已经有了一个可以接受的答案,但是如果它绊倒别人的话,请分享我的情景:
我有同样的问题,我无法在自定义表格视图单元格中以编程方式设置我的按钮的状态。我的问题是,当我的桌子首次创建单元格时,我试图设置状态。相反,我必须确保在我的自定义单元格中覆盖布局方法并在那里设置状态。