NSButton 不调用它的动作

NSButton does not call its action

我在处理 NSButton 的操作时遇到了一些麻烦。我以编程方式创建一个按钮 ...

let continueButton = NSButton(title: "Continue", target: self, action: #selector(self.continueButtonClicked))

...调用此函数:

@objc func continueButtonClicked() {
    print("continueButtonClicked")
}

但是,continueButtonClicked 从未被调用,按钮似乎被禁用。我试过启用它,但没有成功。

我是不是漏掉了什么?

我认为您需要在方法中包含发件人信息。以下代码应该可以工作并且与 Swift 4.

兼容
let continueButton = NSButton(title: "Continue", target: self, action: #selector(self.continueButtonClicked(_:)))

@objc func continueButtonClicked(_ sender: NSButton) {
    print("Continue button clicked")
}

好的,事实证明,按钮确实调用了动作,但它只是在按下几秒钟后才反应过来。我设法找出原因是我在按钮的超级视图上有一个 NSClickGestureReckognizer。在显示按钮时禁用它对我来说解决了这个问题。

我希望这对遇到类似问题的人有所帮助。