我对NSButton的行动有点麻烦。我以编程方式创建一个按钮......
let continueButton = NSButton(title: "Continue", target: self, action: #selector(self.continueButtonClicked))
...调用此函数:
@objc func continueButtonClicked() {
print("continueButtonClicked")
}
但是,永远不会调用continueButtonClicked
,并且该按钮似乎已被禁用。我已经尝试过启用它,但这并不能解决问题。
我错过了什么吗?
答案 0 :(得分:2)
我认为您需要在方法中包含发件人信息。以下代码应该可以使用并与Swift 4兼容。
let continueButton = NSButton(title: "Continue", target: self, action: #selector(self.continueButtonClicked(_:)))
@objc func continueButtonClicked(_ sender: NSButton) {
print("Continue button clicked")
}
答案 1 :(得分:2)
好的,事实证明,按钮确实调用了动作,但它只是在按下它几秒后才做出反应。我设法弄清楚原因是我在按钮的超级视图上有一个NSClickGestureReckognizer。在显示按钮时禁用它可以解决我的问题。
我希望这有助于遇到类似问题的人。