Я создал приложение с AppleScript в Automator.
Приложение сразу же предоставляет пользователю диалоговый список.
По умолчанию существует два способа выбора элемента из списка:
С помощью мыши.
Используя клавиши со стрелками на клавиатуре.
Однако я хотел бы предложить пользователю третий вариант: выбрать элемент на основе нажатия клавиши или сочетания клавиш. Я также хотел бы, чтобы выбранный элемент был отправлен сразу после нажатия клавиши или сочетания клавиш.
Например:
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)», а затем автоматически нажимается кнопка «ОК». И так далее.
Это возможно?
Я знаю, что возможно создать диалоговое окно с текстовым полем, в котором пользователь вводит число вручную, а затем пользователь нажимает ввод вручную, и число назначается соответствующему типу фруктов.
Но это не особенно красивое решение.
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автоматически вызывает нажатие клавиши.