NSButton状态没有改变

问题描述 投票:2回答:3

以下代码在我的沙箱中完美运行:

@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。啃我的键盘没有帮助。任何的想法?

swift nsbutton
3个回答
4
投票

您没有为按钮状态指定任何值。

sender.state = NSOnState

更新Swift 4.2

sender.state = NSControl.StateValue.on

1
投票

更改swift 4的单选按钮状态(检查状态):

@IBOutlet weak var checkedButton: NSButton!

checkedButton.state = NSControl.StateValue.off // State = off

checkedButton.state = NSControl.StateValue.on  // State = on

0
投票

我知道这已经有了一个可以接受的答案,但是如果它绊倒别人的话,请分享我的情景:

我有同样的问题,我无法在自定义表格视图单元格中以编程方式设置我的按钮的状态。我的问题是,当我的桌子首次创建单元格时,我试图设置状态。相反,我必须确保在我的自定义单元格中覆盖布局方法并在那里设置状态。

© www.soinside.com 2019 - 2024. All rights reserved.