¿Es posible que el botón "Salir" de una aplicación de AppleScript sobrescriba (es decir, cancele) un cuadro de diálogo abierto?

2

Para presenciar el problema al que me refiero, sigue estos pasos:

  1. Cree un AppleScript que simplemente contenga un diálogo display dialog .

  2. Guarde este script como un archivo .app.

  3. Ejecuta el archivo .app.

Si hace clic con el botón derecho en el icono del Dock del archivo, haga clic con el botón izquierdo en Salir , como se muestra en la siguiente captura de pantalla:

observarás que no pasa nada. Es decir, la aplicación permanece abierta.

El atajo de teclado, ⌘ comando + Q , es igualmente inútil.

La única forma de salir de esta aplicación (excluyendo hacer clic en "Forzar salida" en Activity Monitor.app) es haciendo clic en un botón en el cuadro de diálogo activo de la aplicación.

¿Es posible hacer que la función "Salir" inherente de una aplicación AppleScript salga de la aplicación, incluso si la aplicación está mostrando actualmente un cuadro de diálogo cuando se llama a la función "Salir"?

Nota: el diálogo display alert y el diálogo choose from list se comportan de la misma manera dominante que el diálogo display dialog .

    
pregunta rubik's sphere 11.06.2017 - 05:53

1 respuesta

2

La respuesta corta es, no .

La respuesta más larga es: por diseño, un display dialog de AppleScript crea un objeto modal de aplicación, lo que significa que hasta que el usuario responda a los controles del objeto, la aplicación espera hasta que reciba la entrada apropiada para ese objeto en orden. para continuar.

Si existe un botón Cancelar y no el botón predeterminado, puede descartarse presionando la tecla Esc o una tecla Command-period para activar el botón Cancelar. Si utiliza un botón Cancelar, puede interceptar el error y ejecutar un return que detendrá la ejecución del código restante de la aplicación.

Si si no tiene un botón Cancelar, no se puede descartar sin interacción directa o forzar el cierre por cualquiera de varios métodos.

Para forzar la salida:

  • Puede hacer clic con el botón derecho del ratón en el mosaico del Dock de la aplicación y seleccionar Forzar salida en el menú contextual del mosaico del Dock de la aplicación.
  • Presione Opción-Comando-Esc para abrir el cuadro de diálogo Forzar el cierre de aplicaciones.
  • Forzar la salida de Activity Monitor.
  • Su proceso también puede eliminarse desde Terminal de diferentes maneras, pero más allá del alcance de esta respuesta, ya que no es un método GUI.

Además, ⌘Q no funciona porque está atenuado en el menú de la barra de menús de la aplicación.

Todo esto también es cierto dentro del Editor de secuencias de comandos, no solo con una aplicación AppleScript. Una vez que esté presente display dialog , debe interactuar con la aplicación o la aplicación debe cerrarse por un método u otro.

    
respondido por el user3439894 11.06.2017 - 20:30

Lea otras preguntas en las etiquetas