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

2

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

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

  2. Guarde este script como un archivo .app.

  3. Ejecute el archivo .app.

Si hace clic con el botón derecho en el icono Dock del archivo, luego haga clic con el botón izquierdo Quit, 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, ⌘ command+ Q, es igualmente inútil.

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

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


Nota: El display alertdiálogo y el choose from listdiálogo se comportan de la misma manera dominante que el display dialogdiálogo.

esfera de rubik
fuente
1
⌘Q no funciona porque está atenuado en el menú de la barra de menú de la aplicación. Puede hacer clic con el botón derecho en el mosaico Dock de la aplicación y seleccionar Forzar salida en el menú contextual del mosaico Dock de la aplicación. Dicho esto, no creo que haya ningún código estándar de AppleScript que pueda implementar que salga de la aplicación mientras está presente el cuadro de diálogo de visualización haciendo clic en Salir en el menú contextual del mosaico Dock de la aplicación.
user3439894
1
No estaba familiarizado con la opción de hacer clic con el botón derecho, "Forzar salida". Ese es un buen consejo. Este método cierra el diálogo y la aplicación, tal como lo deseo. No puedo imaginar que exista una mejor respuesta. Entonces, si quieres publicar eso como respuesta, lo aceptaré. ¡Gracias!
esfera de rubik
Estaba muy cansado anoche para escribirlo en forma de una respuesta adecuada. :)
user3439894

Respuestas:

2

La respuesta corta es no .

La respuesta más larga es: por diseño, un AppleScript display dialogcrea 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 adecuada a ese objeto para que continúe.

Si existe un botón Cancelar y no el botón predeterminado, se puede descartar presionando la tecla Esc o presionando una tecla de período de comando para activar el botón Cancelar. Si usa un botón Cancelar, puede atrapar el error y ejecutar uno returnque detendrá la ejecución del código restante de la aplicación.

Si no tiene un botón Cancelar, no se puede descartar sin interacción directa o salir forzado por cualquiera de los varios métodos.

Para forzar el abandono:

  • Puede hacer clic con el botón derecho en el mosaico Dock de la aplicación y seleccionar Forzar salida en el menú contextual del mosaico Dock de la aplicación.
  • Presione Opción-Comando-Esc para abrir el cuadro de diálogo Forzar salida de aplicaciones
  • Forzarlo a salir del Monitor de actividad.
  • Su proceso también se puede eliminar desde la 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ú de la aplicación.

Todo esto también es cierto dentro del Editor de scripts en sí, no solo con una aplicación AppleScript. Una vez que hay un display dialogpresente, debe interactuar con él adecuadamente o la aplicación debe cerrarse por un método u otro.

usuario3439894
fuente