AppleScript: Creación de diálogos complejos con facilidad
() translation by (you can also view the original English article)
AppleScript es un lenguaje de scripting increíblemente natural e intuitivo que te ayuda a automatizar tareas en OS X. Me gusta bastante la sintaxis y lo fácil que es aprender y escribir, pero definitivamente hay algunas áreas que son más difíciles de captar que otras. Por ejemplo, siempre tengo dificultad para recordar todas las opciones y sintaxis específicas implicadas en la creación de ventanas de diálogo como las que permiten al usuario introducir algún texto o hacer una selección de una serie de opciones.
Hoy vamos a echar un vistazo rápido a cómo se puede agilizar este proceso con una herramienta increíblemente útil de la Mac App Store llamada Dialog Maker.
Aprender AppleScript
¿No conoces AppleScript? Este artículo puede no ser muy bueno para ti. Sin embargo, puedes aprender casi todo lo que necesitas saber de otros dos artículos aquí en AppStorm!
Diálogos: El camino difícil
Para ver cómo funciona normalmente este proceso, vamos a probar un caso. Supongamos que queremos crear un cuadro de diálogo que permita al usuario elegir uno o más días de la semana. Puedes comenzar con un código como este:
[applescript] escoger de la lista {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"} [/applescript]
Bastante simple, ¿verdad? Este cuadro de diálogo funcionará, pero aprovecha muchas de las configuraciones predeterminadas que podemos o no deseamos usar. Por ejemplo, de forma predeterminada, el usuario solo puede seleccionar una opción. En este punto, normalmente busco en Google para ver qué opciones acompañan a un cuadro de diálogo típico. Resulta que podemos añadir una tonelada de cosas diferentes, aquí hay algunos ejemplos.
Un título:
[applescript] con el título "Selector de calendario" [/applescript]
Un aviso (instrucciones): [applescript] con el mensaje "Elije uno o más días" [/applescript]
Botones personalizados: [applescript] OK nombre del botón "Estos días" cancelar nombre de botón "Sin días" [/applescript]
Una selección predeterminada: [applescript] elementos predeterminados "Lunes" [/applescript]
Habilitar varias selecciones: [applescript] con múltiples selecciones permitidas [/applescript]
Una vez que descubramos todas estas diversas opciones, podemos combinarlas en una línea de código súper larga:
[applescript] escoger de la lista "Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado" con el título "Selector de calendario" con el mensaje "Elija uno o más días" OK nombre del botón "Estos días" cancelar el nombre del botón "Sin días" elementos predeterminados "Lunes" [/applescript]
Por lo que respecta a la programación de alto nivel, esto no es algo exactamente complicado. Sin embargo, para los nuevos codificadores esto puede ser un fragmento bastante engorroso de código para trabajar. Además, como ya he mencionado, a veces la parte más difícil es simplemente recordar todas las opciones que tienes con cada tipo de diálogo y cómo implementarlas correctamente.
Los diccionarios AppleScript ayudan enormemente, pero una opción aún más fácil es utilizar una aplicación llamada Dialog Maker, que te proporciona una interfaz sencilla, similar a un formulario para crear cuadros de diálogo complejos en AppleScript. Echemos un vistazo a los tres diferentes tipos de diálogos que te ayuda a crear.
Mostrar diálogo
La primera de las tres opciones en Dialog Maker es "Mostrar diálogo". Este es el más simple de los tres y proporciona al usuario un mensaje y hasta tres respuestas posibles en forma de botones o entrada de texto.
Digamos que queremos crear un diálogo titulado con instrucciones simples y tres posibles respuestas en forma de botones. En primer lugar, abrimos Dialog Maker y seleccionamos la opción "Mostrar diálogo" a lo largo de la parte superior. Desde aquí podemos usar una serie de controles básicos en lugar de escribir código a mano:



Como puedes ver, lo primero que se nos pide es proporcionar un título opcional para el cuadro de diálogo. Elige la opción "texto" y escribe un título. Lo siguiente son las opciones de entrada de texto, ya que sólo quería ir con un simple diálogo controlado por botón, me salté estos.
Finalización del diálogo
A partir de aquí, simplemente seguimos y llenamos el resto de las opciones. En primer lugar, puedes elegir si deseas o no un icono (selecciona tu propia opción o una opción predeterminada). A continuación, elige cuántos botones deseas (hasta tres), lo que cada uno dice y cuáles serán los comportamientos y selecciones predeterminadas. Mi opción favorita aquí es la capacidad de hacer que Dialog Maker configure tu instrucción "if" por ti. La mayoría de las veces vas a querer que ciertas acciones sucedan cuando se hace clic en un botón determinado, lo cual se logra a través de los comandos "if" y "then".



Previsualización e inserción
Una vez que hayas terminado de rellenar los formularios, puedes hacer clic en el botón "Vista previa" para ver tu cuadro de diálogo en acción. Aparecerá una versión interactiva en vivo de la ventana.



Una vez que estés satisfecho con los resultados, puedes copiar el código en el portapapeles o hacer clic en el botón "Insertar" para que aparezca automáticamente en la ventana activa del Editor de AppleScript.



Escoger de la lista
Con la sección "Escoger de la lista", podemos crear el diálogo con el que comenzamos el artículo en segundos sin problemas. Al igual que con la sección anterior, tenemos acceso instantáneo a todas las opciones pertinentes como título, aviso, etc. Una de las cosas que realmente me gusta aquí es el sistema para añadir elementos a la lista: cada elemento aparece como una pequeña unidad que se puede fácilmente reorganizar, eliminar, etc. A medida que agregas elementos en esta sección, el que aparece debajo se actualiza automáticamente para que puedas elegir la opción predeterminada.



Como se puede ver en la vista previa a continuación, pudimos construir exactamente el mismo cuadro de diálogo con todas las opciones que usamos antes, sólo que esta vez en lugar de escribir el código manualmente simplemente manipulamos algunos controles y pegamos en el texto.



Elegir archivo
La última opción es una con la que definitivamente estás familiarizado y sin duda encuentras varias veces por hora en tu Mac: un diálogo de archivo. Aquí se obtiene una gran cantidad de opciones para filtrar el contenido que aparece en la ventana, una opción que nunca había explorado realmente hasta el uso de esta aplicación!



Conclusión
Los cuadros de diálogo de codificación a mano en AppleScript pueden ser un poco complicados. No sólo tienes que recordar muchos de los diversos fragmentos de código que son necesarios para lograr el efecto que deseas, también tienes que recordar cuáles son todos los ajustes predeterminados para cada diálogo y cómo cambiarlos.
El uso de una aplicación como Dialog Maker realmente puede acelerar tu proceso de codificación y ayudarte a través de una de las partes más complicadas de AppleScript. Además, ya que la aplicación genera código para que lo insertes, aprenderás tanto cada vez que lo uses que necesitarás la aplicación cada vez menos.