Para presenciar el problema al que me refiero, siga estos pasos:
Cree un AppleScript que simplemente contenga un
display dialog
cuadro de diálogo.Guarde este script como un archivo .app.
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 alert
diálogo y el choose from list
diálogo se comportan de la misma manera dominante que el display dialog
diálogo.
fuente
Respuestas:
La respuesta corta es no .
La respuesta más larga es: por diseño, un AppleScript
display dialog
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 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
return
que 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:
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 dialog
presente, debe interactuar con él adecuadamente o la aplicación debe cerrarse por un método u otro.fuente