以下代码在我的沙箱中完美运行:
@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)
}
Run Code Online (Sandbox Code Playgroud)
连接的按钮是一个开关按钮。因此,当它打开时,我按住 ctrl 单击它会保持打开状态。
不幸的是,在我真正需要它的应用程序中,它不起作用。我检查了在沙箱和 prod 应用程序中,两个按钮的绑定/设置是相同的。调试器显示
sender.state == NSOnState
Run Code Online (Sandbox Code Playgroud)
根本不执行。state停留NSOffState。啃我的键盘没有帮助。任何的想法?
小智 6
您没有为按钮状态分配任何值。
sender.state = NSOnState
Run Code Online (Sandbox Code Playgroud)
Swift 4.2 更新
sender.state = NSControl.StateValue.on
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3455 次 |
| 最近记录: |