Quando possono usare ESC per chiudere Windows?

7

Quindi, ho notato casualmente il seguente comportamento:

Alcune finestre possono essere chiuse premendo il tasto esc , come la finestra Preferenze in qualsiasi app o la finestra "Aiuto di Safari" o la finestra "Caratteri" in TextExit, per esempio.

Non è possibile chiudere altre finestre premendo il tasto esc , come la finestra del browser Safari o la finestra "Caratteri speciali".

Il cmd w predefinito sembra sempre funzionare.

Qual è la regola per le battute sulla chiusura di finestre? Quando possiamo usare esc ?

    
posta CousinCocaine 16.07.2014 - 17:06
fonte

2 risposte

8

Quello che stai vedendo, vale a dire il comportamento in cui il tasto Esc chiude la finestra, viene automaticamente integrato nella classe NSPanel , che è una sottoclasse di NSWindow .

Da Window Programming Guide > How Panels Work :

A panel is a special kind of window, typically serving an auxiliary function in an application. The NSPanel subclass of NSWindow adds a few special behaviors to windows in support of the role panels play:

...

If a panel is the key window and has a close button, it closes itself when the user presses the Escape key.

La finestra delle preferenze (o pannello) in molte applicazioni è implementata come NSPanel : ad esempio, Safari, Anteprima, Terminale, Console. Il pannello Caratteri nelle app Cocoa è implementato come NSPanel . Quando scegli Safari > Safari Help, in realtà lancia un'applicazione invisibile di sfondo, HelpViewer.app (/System/Library/CoreServices/HelpViewer.app), la cui finestra principale è implementata come% fluttuante% co_de. Per questi motivi, quei pannelli risponderanno alla chiave Escape chiudendo la finestra. Le finestre generali standard, che sono istanze di NSPanel , non ottengono automaticamente questo comportamento, poiché solo i pannelli hanno lo scopo di comportarsi in questo modo.

    
risposta data 16.07.2014 - 22:13
fonte
7

L'uso della chiave esc per chiudere una finestra di dialogo modale è in genere la stessa cosa che premere il pulsante Annulla per la finestra di dialogo. Questo è simile al modo in cui premendo i tasti Return o Enter si conferma l'azione per il pulsante evidenziato.

Questo è stato nelle Linee guida per l'interfaccia umana di Apple per Macintosh sin dall'inizio e non è nuovo per OS X. Le linee guida possono essere trovate qui sotto l'intestazione "Eliminazione di finestre di dialogo":

link

Cerca "escape" su quella pagina. La corrispondenza è circa 3/4 della pagina in basso ed è esplicito in merito a questo comportamento.

Dalle linee guida dell'interfaccia umana:

In general, include a Cancel button. The Cancel button returns the computer to the state it was in before the dialog appeared. It means “forget I mentioned it.” Also, make sure that the keyboard shortcut Command-period and the Esc (Escape) key are mapped to the Cancel button.

Un altro comportamento utile è che se una finestra di dialogo accetta Return o Enter come parte di un campo di testo, molto spesso premendo Command - Return preme il pulsante predefinito.

    
risposta data 16.07.2014 - 17:49
fonte

Leggi altre domande sui tag