Поскольку AppleScript был спроектирован как система автоматизации, в отличие от полноценного языка программирования, он всегда ограничивал свои GUI простыми панелями в стиле «оповещения». Идея заключалась в том, что сценарий должен как можно меньше беспокоить пользователя, показывая диалоги, которые запрашивают один фрагмент информации, а затем удаляется, чтобы сценарий мог работать более или менее незаметно. Его собственные оповещения имеют максимум три кнопки (на моделях «Да», «Нет», «Отмена»). Единственный способ справиться с выбором из более чем трех элементов - это использовать команду choose from list
, например:
set meal to choose from list {"Hamburger", "Pizza", "Spaghetti", "Cucumber Salad", "Pork Chops", "Green Eggs and Ham"} with title "Meal Time" with prompt "What do you want to eat?"
, которая выдает следующее предупреждение:
Несмотря на то, что с помощью AppleScriptObj C можно создать многокнопочное предупреждение с рядами кнопок, это нетривиальная задача: много усилий за небольшую награду. По сути, нужно создать новое оповещение, используя NSAlert
, затем создать и прикрепить вспомогательный вид, в котором вы добавили и разместили свои строки в NSButtons
. Вам также нужно будет добавить некоторые логи c, чтобы созданные вами кнопки просмотра аксессуаров действовали как кнопки «оповещения» (то есть они отклоняли оповещение при нажатии). Переполнение стека на самом деле не предназначено для служб кодирования - хотя люди иногда нарушают это правило - но если вы захотите самостоятельно выполнить большую часть кодирования, мы с радостью поможем вам с трудностями.