Cómo finalizar la edición en NSTextFieldCell dentro de NSOutlineView después de presionar la tecla ESC
-
27-10-2019 - |
Pregunta
Estoy tratando de conseguir una costumbre NSTextFieldCell
(dentro de una NSOutlineView
) para finalizar la edición cuando se presiona la tecla ESC pero no encuentra ninguna manera de lograrlo.Intenté agregar un observador para el NSControlTextDidChangeNotification
-notificación pero no se activa para la tecla ESC ni tampoco keyDown
disparado en el NSOutlineView
.
Solución
disparadores ESC -cancelOperation
en NSResponder.Puedes intentar manejar esto en algún lugar de tu cadena de respuesta.
Otros consejos
La respuesta aceptada es correcta.Elaborar:para detectar eventos clave ESC, puede anular el método cancelOperation en NSViewController (o cualquier otro derivado de NSResponder que esté usando).Así es como se ve mi código en 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!")
}
}
más lectura: NSWindowController no puede capturar ESC sin agregar WebView a la ventana