NSButton状态没有改变

时间:2015-03-26 11:53:31

标签: swift nsbutton

以下代码在我的沙盒中非常完美:

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

4 个答案:

答案 0 :(得分:4)

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

sender.state = NSOnState

Swift 4.2的更新

sender.state = NSControl.StateValue.on

答案 1 :(得分:1)

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

microbenchmark

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

我在 CollectionViewItem 中有这个... 我有一个最喜欢的按钮的插座......

class PictureCollectionViewItem: XCollectionViewItem
{
    @IBOutlet var thumbnailView: NSImageView!
    @IBOutlet var tagsView: NSTextField!
    @IBOutlet var favouriteButton: NSButton!
    ... 
}

我已将插座链接到 Collection View Item 对象

但未将其链接到文件的所有者...

一旦我将它链接到文件的所有者,......一切都奏效了。