13

我正在尝试在按下 ESC 键时自定义NSTextFieldCell(在 a 内NSOutlineView)结束编辑,但找不到任何方法来完成此操作。我试图为NSControlTextDidChangeNotification-notification 添加一个观察者,但它不会被 ESC 键keyDown触发,也不会在NSOutlineView.

4

2 回答 2

24

NSResponder 中的Esc 触发器-cancelOperation。您可以尝试在响应者链中的某个地方处理此问题。

于 2011-04-30T12:42:05.323 回答
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

于 2018-12-26T19:04:24.050 回答