Lo que está viendo, es decir, el comportamiento donde la tecla Escape cierra la ventana, se integra automáticamente en la clase NSPanel
, que es una subclase de NSWindow
.
De Window Programming Guide > How Panels Work
:
Un panel es un tipo especial de ventana, que sirve típicamente a un auxiliar
Funcionar en una aplicación. La subclase NSPanel
de NSWindow
agrega
Algunos comportamientos especiales para Windows en apoyo de los paneles de roles juegan:
...
• Si un panel es la ventana clave y tiene un botón de cierre, se cierra solo
cuando el usuario presiona la tecla Escape
.
La ventana de preferencias (o panel) en muchas aplicaciones se implementa como NSPanel
: por ejemplo, Safari, Vista previa, Terminal, Consola. El panel de Fuentes en las aplicaciones Cocoa se implementa como un NSPanel
. Cuando elige Safari > Ayuda de Safari, en realidad inicia una aplicación de fondo invisible, HelpViewer.app (/System/Library/CoreServices/HelpViewer.app), cuya ventana principal se implementa como un NSPanel
flotante. Por estas razones, esos paneles responderán a la tecla Escape al cerrar la ventana. Las ventanas generales estándar, que son instancias de NSWindow
, no obtienen este comportamiento automáticamente, ya que solo los paneles deben comportarse de esa manera.