{"id":553,"date":"2018-06-25T09:00:33","date_gmt":"2018-06-25T08:00:33","guid":{"rendered":"http:\/\/www.programaraciegas.net\/?p=553"},"modified":"2018-06-17T05:59:19","modified_gmt":"2018-06-17T04:59:19","slug":"cuadros-de-dialogo-con-listas-en-applescript","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=553","title":{"rendered":"Cuadros de di\u00e1logo con listas en AppleScript"},"content":{"rendered":"<p>En art&iacute;culos anteriores hemos visto c&oacute;mo mostrar al usuario un cuadro de di&aacute;logo para que pueda elegir entre un m&aacute;ximo de 3 botones. En muchas ocasiones podemos necesitar que el usuario elija entre 4 o m&aacute;s opciones. AppleScript nos permite realizar esto a trav&eacute;s del comando <strong>choose from list<\/strong>.<\/p>\n<p>Su sintaxis es la siguiente:<\/p>\n<p><code><br \/>\nchoose from list { lista de opciones }<br \/>\n<\/code><\/p>\n<p>Para indicar todos los posibles valores debemos hacerlo mediante el uso de <a href=\"http:\/\/www.programaraciegas.net\/?p=477\">listas en AppleScript<\/a><\/p>\n<p>Por ejemplo, imaginemos un ejemplo en el que solicitamos al usuario que elija un tipo de comida para pedir a domicilio. El c&oacute;digo ser&iacute;a algo como esto:<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"}<br \/>\n<\/code><\/p>\n<p>Al ejecutar este script nos aparecer&aacute; un cuadro de di&aacute;logo con el texto <em>Elige la opci\u00f3n que quieras:<\/em>, una tabla de selecci&oacute;n y los botones cancelar y aceptar. El bot&oacute;n aceptar s&oacute;lo estar&aacute; disponible cuando se haya seleccionado un elemento de la tabla.<\/p>\n<h2>Personalizando el cuadro de di&aacute;logo<\/h2>\n<p>Podemos mejorar nuestro script incluyendo un t&iacute;tulo para nuestro cuadro de di&aacute;logo usando el par&aacute;metro <strong>with title<\/strong>:<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\"<br \/>\n<\/code><\/p>\n<p>el texto de <em>Elige la opci\u00f3n que quieras:<\/em> puede que no se adapte a nuestras necesidades. Con el par&aacute;metro <strong>with prompt<\/strong> podemos personalizar este texto.<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\"<br \/>\n<\/code><\/p>\n<p>Podemos cambiar el texto para los botones de cancelar y aceptar con los par&aacute;metros <strong>ok button name<\/strong> y <strong>cancel button name<\/strong>.<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\"<br \/>\n<\/code><\/p>\n<p>Con el par&aacute;metro <strong>default items<\/strong> podemos seleccionar por defecto una lista de valores. Si uno de los valores indicados en la lista por defecto no est&aacute; disponible en la lista de elementos seleccionables nos aparecer&aacute; un error por lo que hay que tener cuidado con c&oacute;mo se escriben los elementos de esta lista por defecto.<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"}<br \/>\n<\/code><\/p>\n<p>Con el par&aacute;metro <strong>multiple selections allowed<\/strong> podemos permitir el poder seleccionar m&aacute;s de un valor de la lista. Para nuestro ejemplo no se permitir&aacute; esta posibilidad.<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} multiple selections allowed false<br \/>\n<\/code><\/p>\n<p>En lugar de <em>true<\/em> o <em>false<\/em> dependiendo de la versi&oacute;n de MacOS que estemos utilizando el editor de AppleScripts puede sustituir el valor de <em>true<\/em> o <em>false<\/em> por <strong>with<\/strong> o <strong>without<\/strong>. Nuestro ejemplo quedar&iacute;a as&iacute;:<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} without multiple selections allowed<br \/>\n<\/code><\/p>\n<p>Por &uacute;ltimo con el par&aacute;metro <strong>empty selection allowed<\/strong> podemos indicar si el usuario puede pulsar el bot&oacute;n aceptar sin seleccionar nada de la lista. Para nuestro ejemplo no se lo permitiremos.<\/p>\n<p><code><br \/>\nchoose from list {\"Vegetariana\", \"Mejicana\", \"China\", \"Japonesa\", \"Mediterranea\", \"Italiana\"} with title \"Selecci\u00f3n de tipo de comida\" with prompt \"Selecciona el tipo de comida que m\u00e1s te apetezca\" OK button name \"Pide ahora!\" cancel button name \"No tengo hambre\" default items {\"Mejicana\"} multiple selections allowed false empty selection allowed false<br \/>\n<\/code><\/p>\n<p>Con toda esta informaci&oacute;n ya podemos crear un di&aacute;logo con el usuario de nuestro script para seleccionar entre varios elementos. En un art&iacute;culo siguiente veremos c&oacute;mo reaccionar a la elecci&oacute;n del usuario.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En art&iacute;culos anteriores hemos visto c&oacute;mo mostrar al usuario un cuadro de di&aacute;logo para que pueda elegir entre un m&aacute;ximo de 3 botones. En muchas ocasiones podemos necesitar que el usuario elija entre 4 o m&aacute;s opciones. AppleScript nos permite realizar esto a trav&eacute;s del comando choose from list. Su sintaxis es la siguiente: choose &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=553\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abCuadros de di\u00e1logo con listas en AppleScript\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,6],"tags":[83,286,287],"class_list":["post-553","post","type-post","status-publish","format-standard","hentry","category-applescript","category-programacion","tag-applescript-2","tag-dialogo","tag-lista"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=553"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/553\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}