2 votos

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

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

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

  2. Guarde este script como un archivo .app.

  3. Ejecute el archivo .app.

Si hace clic con el botón derecho del ratón en el icono del Dock del archivo, y luego hace clic con el botón izquierdo del ratón en 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 manera de salir de esta aplicación (excluyendo hacer clic en "Forzar salida" 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 "Quit" inherente a una aplicación AppleScript salga de la aplicación, incluso si la aplicación está mostrando un diálogo cuando se llama a la función "Quit"?


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

1 votos

Q no funciona porque está en gris en el menú de la barra de menús de la aplicación. Puedes hacer clic con el botón derecho 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. Dicho esto, no creo que haya ningún código AppleScript estándar que pueda implementarse para salir de la aplicación mientras el diálogo de visualización está presente haciendo clic en Salir en el menú contextual del mosaico del Dock de la aplicación.

1 votos

No estaba familiarizado con la opción-derecha-clic, "Force Quit". Es un buen consejo. Efectivamente, este método cierra el diálogo y la aplicación, tal y como yo deseo. No puedo imaginar que exista una respuesta mejor. Así que, si quieres publicarla como respuesta, la aceptaré. Gracias.

0 votos

Anoche estaba demasiado cansado para escribirlo en forma de respuesta :)

2voto

user3439894 Puntos 5883

La respuesta corta es, no .

La respuesta más larga es: Por diseño, un AppleScript display dialog crea un objeto modal de la 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 a ese objeto para poder continuar.

Si existe un botón de cancelación y no es el botón por defecto, se puede descartar pulsando la tecla Esc o una tecla Periodo de comandos para activar el botón de cancelación. Si utiliza un botón de cancelación, puede atrapar el error y ejecutar un return que detendrá la ejecución del código restante de la aplicación.

Si no tiene un botón de cancelación, entonces no puede ser descartado sin una interacción directa o un abandono forzado por cualquiera de los varios métodos.

Para forzar la salida:

  • Puedes opción-clic-derecho el mosaico del Dock de la aplicación y seleccione Forzar salida en el menú contextual del mosaico del Dock de la aplicación.
  • Pulse Opción-Comando-Esc para que aparezca el cuadro de diálogo Forzar salida de aplicaciones.
  • Forzar la salida desde el Monitor de Actividad.
  • Su proceso también puede ser matado desde la Terminal de diferentes maneras, pero más allá del alcance de esta respuesta ya que no es un método de GUI.

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

Todo esto también es cierto dentro del propio Editor de script, no sólo con una aplicación AppleScript. Una vez que un display dialog está presente debe ser interactuado apropiadamente o la aplicación debe ser forzada a salir por un método u otro.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X