È possibile che il pulsante "Esci" di un'applicazione AppleScript sovrascriva (ad esempio, annulla) una finestra di dialogo aperta?

2

Per assistere al problema a cui mi riferisco, segui questi passaggi:

  1. Crea un AppleScript che contiene semplicemente una finestra di dialogo display dialog .

  2. Salva questo script come file .app.

  3. Esegui il file .app.

Se fai clic con il pulsante destro del mouse sull'icona del Dock del file, quindi fai clic con il pulsante sinistro del mouse su Esci , come illustrato nella seguente schermata:

noterai che non succede nulla. Cioè, l'applicazione rimane aperta.

La scorciatoia da tastiera, ⌘ comando + Q , è allo stesso modo futile.

L'unico modo per uscire da questa applicazione (escluso facendo clic su "Forza Esci" in Activity Monitor.app) è fare clic su un pulsante nella finestra di dialogo attiva dell'applicazione.

È possibile far uscire la funzione "Esci" di un'applicazione AppleScript dall'applicazione, anche se l'applicazione sta attualmente visualizzando una finestra di dialogo quando viene chiamata la funzione "Esci"?

Nota: la finestra di dialogo display alert e la finestra di dialogo choose from list si comportano nello stesso modo prepotente della finestra di dialogo display dialog .

    
posta rubik's sphere 11.06.2017 - 05:53
fonte

1 risposta

2

La risposta breve è, no .

La risposta più lunga è: in base alla progettazione, una display dialog di AppleScript crea un oggetto modale dell'applicazione, il che significa che finché l'utente non risponde ai controlli dell'oggetto, l'applicazione attende fino a quando riceve l'input appropriato per quell'oggetto per continuare.

Se esiste un pulsante Annulla e non il pulsante predefinito, può essere rimosso premendo il tasto Esc o premendo Periodo di comando per attivare il pulsante Annulla. Se utilizzi un pulsante Annulla, puoi intercettare l'errore ed eseguire un return che interromperà l'esecuzione del codice rimanente dell'app.

Se if non ha un pulsante Annulla, non può essere eliminato senza interazione diretta o forzato da uno qualsiasi dei diversi metodi.

Per forzare la chiusura:

  • Puoi opzione-fare clic con il pulsante destro del mouse sul riquadro del Dock dell'app e selezionare Forza Esci dal menu di scelta rapida del pannello Dock dell'applicazione.
  • Premere Opzione-Comando-Esc per visualizzare la finestra di dialogo Esci da applicazioni di chiusura.
  • Forza per uscire da Activity Monitor.
  • Il suo processo può anche essere ucciso dal terminale in diversi modi, ma oltre lo scopo di questa risposta in quanto non è un metodo GUI.

Inoltre, ⌘Q non funziona perché è disattivato nel menu della barra dei menu dell'app.

Tutto ciò è vero anche nello Script Editor stesso, non solo con un'app AppleScript. Una volta che è presente un display dialog , è necessario interagire in modo appropriato o forzare l'uscita dell'app con un metodo o un altro.

    
risposta data 11.06.2017 - 20:30
fonte

Leggi altre domande sui tag