Swift NSButton不调用其操作

Swift NSButton不调用其操作,swift,macos,cocoa,appkit,nsbutton,Swift,Macos,Cocoa,Appkit,Nsbutton,我对NSButton的行为有点小麻烦。我以编程方式创建一个按钮 let continueButton = NSButton(title: "Continue", target: self, action: #selector(self.continueButtonClicked)) 。。。要调用此函数,请执行以下操作: @objc func continueButtonClicked() { print("continueButtonClicked") } 但是,continueBu

我对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")
}

好吧,事实证明,这个按钮确实起到了作用,但它只是在按下几秒钟后才做出反应。我设法找出了原因是我在按钮的superview上有一个NSClickGestureReckognizer。在按钮显示时禁用它可以解决我的问题


我希望这能帮助遇到类似问题的人。

谢谢,这个答案太棒了!我立即采纳了它。不过,这并不是我的问题的解决方案。谢谢@JanKaiser,很抱歉这不是你需要的,但我很高兴看到你找到了解决方案!:)“按压几秒钟后有反应”听起来好像你不在主线中。