我正在尝试获取自定义NSTextFieldCell
(在NSOutlineView
内)以在按下ESC键时结束编辑但无法找到任何方法来完成此操作。我尝试为NSControlTextDidChangeNotification
- 通知添加一个观察者,但是它没有针对ESC键触发,keyDown
也没有触发NSOutlineView
。
答案 0 :(得分:20)
Esc在NSResponder中触发-cancelOperation
。您可以尝试在响应链中的某个位置处理此问题。
答案 1 :(得分:0)
接受的答案是正确的。详细说明:为了捕获ESC键事件,您可以在NSViewController(或您使用的NSResponder的任何其他派生类)中覆盖cancelOperation方法。这就是我在Swift 4.x中的代码。
class PopUIcontroller: NSViewController, NSTextFieldDelegate {
override func cancelOperation(_ sender: Any?) {
print("trying to cancel! Here I will do stuff to handle ESC key press!")
}
}
更多阅读内容:NSWindowController can't capture ESC without WebView is added to the window