Как сделать AppleScript, который отображает раскрывающееся меню без использования Xcode?
источник
Как сделать AppleScript, который отображает раскрывающееся меню без использования Xcode?
В диалогах-оповещениях на языке AppleScript отсутствует встроенная концепция меню.
Самое близкое, что вы могли бы сделать, - это присвоить некоторым фиктивным файлам (во временной папке) соответствующее действие и попросить пользователя выбрать файл, помеченный тем действием, которое вы хотите выполнить.
open folder blah
with selected file bah
do whatever
Ужасное «решение» проблемы, которая нуждается в меню какао - независимо от того, делаете ли вы это в Xcode или кому-то еще - Xcode / IB - это инструмент, который создает меню . MacRuby - хороший способ написать приложение, которому нужен более полнофункциональный пользовательский интерфейс, чем AppleScript. Вам не нужно Xcode / IB, чтобы рубить приложение из чистого скрипта.
Вы можете создать NIB с помощью Interface Builder и написать все это с помощью AppleScript, но перо определяет само меню, а не AppleScript (даже если AppleScript может заполнять или удалять элементы меню во время выполнения).
Одним из вариантов будет использование CocoaDialog **:
set l to {"aa", "bb", "cc"}
set choices to ""
repeat with x in l
set choices to choices & quoted form of x & " "
end repeat
set dialog to paragraphs of (do shell script "/Applications/CocoaDialog.app/Contents/MacOS/CocoaDialog" & " standard-dropdown --title title --text text --items " & choices)
if item 1 of dialog is "2" then return -- pressed cancel button
item ((item 2 of dialog) + 1) of l
Вы также можете просто использовать choose from list
:
choose from list {"aa", "bb", "cc"} with title "Title" with prompt "Please choose" default items "bb" with multiple selections allowed
** Исходный URL для этого репозитория Github mstratman
изменен. Из исследования кажется, что CocoaDialog перешел в организацию. Вот новые изменения:
Кроме того, если вам просто нужен список для выбора, вы также можете сделать
choose from list listYouDefined with prompt "Choose from the list."
Google "AppleScript Выбрать из списка".
Я понимаю, что это старый вопрос, но так как лучший ответ будет подтвержден в документации к CocoaDialog 2:
Загрузки не работают Загрузки для cocoadialog 2 больше не доступны. Это в основном отчасти из-за различных изменений и отсутствия постоянного хранения на протяжении многих лет.
и 3 не наступит до весны / лета 18. Я искал другие альтернативы и нашел Пашуа :
В документации это называется popup
:
Example: Using popup
p.type = popup
p.label = Example popup menu
p.width = 310
p.option = Popup menu item #1
p.option = Popup menu item #2
p.option = Popup menu item #3
p.default = Popup menu item #2
Скриншот:
Github репо
После его использования я обнаружил, что вы можете установить Pashua.app в каталог приложения или вы можете встроить Pashua в свое приложение. Я не автор этого, но мне нужно базовое решение для графического интерфейса, и это не упоминалось.
Вам не нужен Xcode для AppleScript. Просто откройте редактор AppleScript в разделе «Программы / Утилиты» (ярлык Finder для папки «Утилиты»: ⌘ Command+ Shift+ U). На MacScripter есть пример кода для выпадающих меню : Выпадающее меню .