En artículos anteriores hemos visto cómo mostrar al usuario un cuadro de diálogo para que pueda elegir entre un máximo de 3 botones. En muchas ocasiones podemos necesitar que el usuario elija entre 4 o más opciones. AppleScript nos permite realizar esto a través del comando choose from list.
Su sintaxis es la siguiente:
choose from list { lista de opciones }
Para indicar todos los posibles valores debemos hacerlo mediante el uso de listas en AppleScript
Por ejemplo, imaginemos un ejemplo en el que solicitamos al usuario que elija un tipo de comida para pedir a domicilio. El código sería algo como esto:
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"}
Al ejecutar este script nos aparecerá un cuadro de diálogo con el texto Elige la opción que quieras:, una tabla de selección y los botones cancelar y aceptar. El botón aceptar sólo estará disponible cuando se haya seleccionado un elemento de la tabla.
Personalizando el cuadro de diálogo
Podemos mejorar nuestro script incluyendo un título para nuestro cuadro de diálogo usando el parámetro with title:
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida"
el texto de Elige la opción que quieras: puede que no se adapte a nuestras necesidades. Con el parámetro with prompt podemos personalizar este texto.
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca"
Podemos cambiar el texto para los botones de cancelar y aceptar con los parámetros ok button name y cancel button name.
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca" OK button name "Pide ahora!" cancel button name "No tengo hambre"
Con el parámetro default items podemos seleccionar por defecto una lista de valores. Si uno de los valores indicados en la lista por defecto no está disponible en la lista de elementos seleccionables nos aparecerá un error por lo que hay que tener cuidado con cómo se escriben los elementos de esta lista por defecto.
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca" OK button name "Pide ahora!" cancel button name "No tengo hambre" default items {"Mejicana"}
Con el parámetro multiple selections allowed podemos permitir el poder seleccionar más de un valor de la lista. Para nuestro ejemplo no se permitirá esta posibilidad.
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca" OK button name "Pide ahora!" cancel button name "No tengo hambre" default items {"Mejicana"} multiple selections allowed false
En lugar de true o false dependiendo de la versión de MacOS que estemos utilizando el editor de AppleScripts puede sustituir el valor de true o false por with o without. Nuestro ejemplo quedaría así:
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca" OK button name "Pide ahora!" cancel button name "No tengo hambre" default items {"Mejicana"} without multiple selections allowed
Por último con el parámetro empty selection allowed podemos indicar si el usuario puede pulsar el botón aceptar sin seleccionar nada de la lista. Para nuestro ejemplo no se lo permitiremos.
choose from list {"Vegetariana", "Mejicana", "China", "Japonesa", "Mediterranea", "Italiana"} with title "Selección de tipo de comida" with prompt "Selecciona el tipo de comida que más te apetezca" OK button name "Pide ahora!" cancel button name "No tengo hambre" default items {"Mejicana"} multiple selections allowed false empty selection allowed false
Con toda esta información ya podemos crear un diálogo con el usuario de nuestro script para seleccionar entre varios elementos. En un artículo siguiente veremos cómo reaccionar a la elección del usuario.