¿Cómo hacer una selección de la lista de diálogo de AppleScript con una pulsación de tecla?

Creé una aplicación con AppleScript en Automator.

La aplicación, desde el principio, presenta al usuario una lista de diálogo.

De forma predeterminada, hay dos formas de seleccionar un elemento de la lista:

  1. Usando su ratón.

  2. Usando las flechas de tu teclado.

Sin embargo, lo que me gustaría hacer es ofrecer al usuario una tercera opción: seleccionar el elemento en función de una pulsación de tecla o un atajo de teclado. También me gustaría que el elemento seleccionado se envíe directamente después de presionar la combinación de teclas o el método abreviado de teclado.

Por ejemplo:

on run {input, parameters}

    set FruitList to {"Banana (#1)", "Kiwi (#2)", "Mango (#3)", "Coconut (#4)", "Pear (#5)"}

    set FavoriteFruitAnswer to choose from list FruitList with title "Fruit Dialog" with prompt "What's your favorite fruit?" default items "Banana (#1)"


    if FavoriteFruitAnswer is false then
        error number -128 (* user cancelled *)
    else
        set FavoriteFruitAnswer to FavoriteFruitAnswer's item 1 (* extract choice from list *)
    end if

    return input
end run

El código anterior produce lo siguiente:

Lo que quiero que ocurra es que si el usuario presiona el número "2" en su teclado, por lo tanto, se selecciona "Kiwi (#2)" y luego se presiona automáticamente el botón "Aceptar". Si el usuario presiona el número "4" en su teclado, por lo tanto, se selecciona "Coco (#4)" y luego se presiona automáticamente el botón "OK". Etcétera.

es posible?

Lo que sé que es posible es crear un cuadro de diálogo con un campo de texto donde el usuario ingresa el número manualmente y luego presiona Intro manualmente y el número se asigna al tipo de fruta correspondiente.

Pero esa no es una solución particularmente bonita.

Respuestas (1)

AppleScript no es lo suficientemente robusto para hacer exactamente lo que está pidiendo, sin embargo, si desea poder seleccionar por número , coloque el número antes del nombre de la fruta , aunque enteraún tendrá que presionarlo después de presionar el número . De lo contrario, al presionar cualquiera que sea el primer carácter de la entrada del elemento de la lista , también se seleccionará.

Por ejemplo, cambie las siguientes dos líneas de código de:

set FruitList to {"Banana (#1)", "Kiwi (#2)", "Mango (#3)", "Coconut (#4)", "Pear (#5)"}
set FavoriteFruitAnswer to choose from list FruitList with title "Fruit Dialog" with prompt "What's your favorite fruit?" default items "Banana (#1)"

A:

set FruitList to {"1. Banana", "2. Kiwi", "3. Mango", "4. Coconut", "5. Pear"}
set FavoriteFruitAnswer to choose from list FruitList with title "Fruit Dialog" with prompt "What's your favorite fruit?" default items "1. Banana"

Como nota al margen, hacer doble clic en una entrada de la lista para seleccionarla con el mouse también activa la enterpulsación de la tecla automáticamente.