Lo que estás viendo, es decir, el comportamiento en el que la tecla Escape cierra la ventana, se incorpora automáticamente al NSPanel
que es una subclase de NSWindow
.
Desde Window Programming Guide > How Panels Work
:
Un panel es un tipo especial de ventana, que suele cumplir una función auxiliar auxiliar en una aplicación. La página web NSPanel
subclase de NSWindow
añade algunos comportamientos especiales a Windows en apoyo del papel que desempeñan los paneles:
...
- • Si un panel es la ventana clave y tiene un botón de cierre, se cierra solo cuando el usuario pulsa la tecla Escape
clave .
La ventana de preferencias (o panel) en muchas aplicaciones se implementa como un NSPanel
: por ejemplo, Safari, Vista Previa, Terminal, Consola. El panel de fuentes en las aplicaciones Cocoa se implementa como un NSPanel
. Cuando eliges Safari > Ayuda de Safari, en realidad se lanza una aplicación invisible en segundo plano, HelpViewer.app (/System/Library/CoreServices/HelpViewer.app), cuya ventana principal se implementa como una ventana flotante NSPanel
. Por estas razones, estos paneles responderán a la tecla Escape cerrando la ventana. Las ventanas generales estándar, que son instancias de NSWindow
no obtienen automáticamente este comportamiento, ya que sólo los paneles están destinados a comportarse así.