Как сделать выбор из диалогового списка AppleScript нажатием клавиши?

Я создал приложение с AppleScript в Automator.

Приложение сразу же предоставляет пользователю диалоговый список.

По умолчанию существует два способа выбора элемента из списка:

  1. С помощью мыши.

  2. Используя клавиши со стрелками на клавиатуре.

Однако я хотел бы предложить пользователю третий вариант: выбрать элемент на основе нажатия клавиши или сочетания клавиш. Я также хотел бы, чтобы выбранный элемент был отправлен сразу после нажатия клавиши или сочетания клавиш.

Например:

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

Предыдущий код производит следующее:

Я хочу, чтобы это произошло, если пользователь нажимает цифру «2» на своей клавиатуре, поэтому выбирается «Киви (# 2)», а затем автоматически нажимается кнопка «ОК». Если пользователь нажимает цифру «4» на своей клавиатуре, поэтому выбирается «Кокос (# 4)», а затем автоматически нажимается кнопка «ОК». И так далее.

Это возможно?

Я знаю, что возможно создать диалоговое окно с текстовым полем, в котором пользователь вводит число вручную, а затем пользователь нажимает ввод вручную, и число назначается соответствующему типу фруктов.

Но это не особенно красивое решение.

Ответы (1)

AppleScript недостаточно надежен, чтобы делать именно то, что вы просите, однако, если вы хотите иметь возможность выбирать по номеру , поместите номер перед названием фрукта , хотя enterего все равно нужно будет нажать после нажатия номера . В противном случае нажатие любого первого символа записи элемента списка также выберет его.

Например, измените следующие две строки кода:

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)"

К:

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"

В качестве примечания: двойной щелчок по элементу списка для его выбора мышью также enterавтоматически вызывает нажатие клавиши.