Come effettuare la selezione dall'elenco di finestre di AppleScript con la sequenza di tasti?

2

Ho creato un'applicazione con AppleScript in Automator.

L'applicazione, a prima vista, presenta all'utente un elenco di dialogo.

Per impostazione predefinita, ci sono due modi per selezionare una voce dall'elenco:

  1. Utilizzo del mouse.

  2. Utilizzo dei tasti freccia sulla tastiera.

Tuttavia, ciò che mi piacerebbe fare è offrire all'utente una terza opzione: selezionare l'elemento in base a un tasto o una scorciatoia da tastiera. Mi piacerebbe anche che l'elemento selezionato fosse inviato direttamente dopo la pressione del tasto o della tastiera.

Ad esempio:

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

Il codice precedente produce quanto segue:

Quello che voglio è se l'utente preme il numero "2" sulla tastiera, quindi "Kiwi (# 2)" è selezionato e quindi il pulsante "OK" viene automaticamente premuto. Se l'utente preme il numero "4" sulla tastiera, quindi "Coconut (# 4)" è selezionato e quindi il pulsante "OK" viene automaticamente premuto. E così via.

È possibile?

Quello che so è possibile è creare una finestra di dialogo con un campo di testo in cui l'utente digita il numero manualmente e poi l'utente tocca invio manualmente e il numero è assegnato al tipo di frutta corrispondente.

Ma questa non è una soluzione particolarmente carina.

    
posta rubik's sphere 19.11.2016 - 05:25
fonte

1 risposta

2

AppleScript non è abbastanza robusto per fare esattamente quello che stai chiedendo, tuttavia se vuoi essere in grado di selezionare numero quindi inserisci il numero prima < em> nome del frutto , anche se invio dovrà ancora essere premuto dopo che il numero è stato premuto. Altrimenti, se si seleziona il primo carattere della voce lista , verrà selezionato anche questo.

Ad esempio, modifica le seguenti due righe di codice da:

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"

Come nota a margine, facendo doppio clic su una voce di elenco per selezionarlo con il mouse, si attiva automaticamente la pressione invio automaticamente.

    
risposta data 19.11.2016 - 05:49
fonte

Leggi altre domande sui tag