以下代码在我的沙盒中非常完美:
@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
。啃我的键盘没有帮助。有什么想法吗?
答案 0 :(得分:4)
您没有为按钮状态指定任何值。
sender.state = NSOnState
Swift 4.2的更新
sender.state = NSControl.StateValue.on
答案 1 :(得分:1)
更改swift 4的单选按钮状态(检查状态):
microbenchmark
答案 2 :(得分:0)
我知道这已经有了一个可以接受的答案,但是如果它绊倒别人的话,请分享我的情景:
我遇到了同样的问题,我无法在自定义表格视图单元格中以编程方式设置按钮的状态。我的问题是,当我的桌子首次创建单元格时,我试图设置状态。相反,我必须确保在我的自定义单元格中覆盖布局方法并在那里设置状态。
答案 3 :(得分:0)