AppleScript: диалог с несколькими рядами кнопок - PullRequest
0 голосов
/ 15 февраля 2020

Код, подобный этому display dialog "choose" buttons {"yes", "no"} создает диалог с 2 кнопками в одной строке, как и ожидалось.

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

Например, первая строка может иметь кнопки {"red", "yellow", "blue"}, вторая строка может быть {"large", "small"}, а третья строка может быть просто {"cancel"}.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Возможно, вы захотите взглянуть на Dialog Toolkit . Это дополнение сценариев, которое можно использовать в редакторе сценариев:

Dialog Toolkit Plus v1.0.1 и Dialog Toolkit v2.0.3

Dialog Toolkit и Dialog Toolkit Plus - это библиотеки сценариев на основе ASObj C для отображения расширенных диалогов. Добавить несколько полей ввода текста, флажки, всплывающие меню, переключатели, элементы управления пути, дополнительные кнопки и правила для диалогов. Dialog Toolkit v2.0.3 - это совместимое обновление, которое устраняет проблему с macOS High Sierra (10.13), тогда как Dialog Toolkit Plus - это расширенная версия, которая обеспечивает большую гибкость, но требует macOS 10.10 или более поздней версии. Вы можете скачать библиотеки и документацию здесь . ( Прямая ссылка для загрузки )

Вот несколько скриншотов примеров диалогов, созданных с использованием библиотеки сценариев Dialog Tool Kit, в Script Editor.app

enter image description here

enter image description here

enter image description here

0 голосов
/ 16 февраля 2020

Поскольку 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?"

, которая выдает следующее предупреждение:

enter image description here

Несмотря на то, что с помощью AppleScriptObj C можно создать многокнопочное предупреждение с рядами кнопок, это нетривиальная задача: много усилий за небольшую награду. По сути, нужно создать новое оповещение, используя NSAlert, затем создать и прикрепить вспомогательный вид, в котором вы добавили и разместили свои строки в NSButtons. Вам также нужно будет добавить некоторые логи c, чтобы созданные вами кнопки просмотра аксессуаров действовали как кнопки «оповещения» (то есть они отклоняли оповещение при нажатии). Переполнение стека на самом деле не предназначено для служб кодирования - хотя люди иногда нарушают это правило - но если вы захотите самостоятельно выполнить большую часть кодирования, мы с радостью поможем вам с трудностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...