Как сделать AppleScript с выпадающим меню без Xcode?

8

Как сделать AppleScript, который отображает раскрывающееся меню без использования Xcode?

daviesgeek
источник

Ответы:

1

В диалогах-оповещениях на языке AppleScript отсутствует встроенная концепция меню.

Самое близкое, что вы могли бы сделать, - это присвоить некоторым фиктивным файлам (во временной папке) соответствующее действие и попросить пользователя выбрать файл, помеченный тем действием, которое вы хотите выполнить.

open folder blah
  with selected file bah
    do whatever

Ужасное «решение» проблемы, которая нуждается в меню какао - независимо от того, делаете ли вы это в Xcode или кому-то еще - Xcode / IB - это инструмент, который создает меню . MacRuby - хороший способ написать приложение, которому нужен более полнофункциональный пользовательский интерфейс, чем AppleScript. Вам не нужно Xcode / IB, чтобы рубить приложение из чистого скрипта.

Вы можете создать NIB с помощью Interface Builder и написать все это с помощью AppleScript, но перо определяет само меню, а не AppleScript (даже если AppleScript может заполнять или удалять элементы меню во время выполнения).

bmike
источник
11

Одним из вариантов будет использование 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 перешел в организацию. Вот новые изменения:

LRI
источник
1

Кроме того, если вам просто нужен список для выбора, вы также можете сделать

choose from list listYouDefined with prompt "Choose from the list."

Google "AppleScript Выбрать из списка".

joeyslaptop
источник
1

Я понимаю, что это старый вопрос, но так как лучший ответ будет подтвержден в документации к 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 в свое приложение. Я не автор этого, но мне нужно базовое решение для графического интерфейса, и это не упоминалось.

ʀ2ᴅ2
источник
0

Вам не нужен Xcode для AppleScript. Просто откройте редактор AppleScript в разделе «Программы / Утилиты» (ярлык Finder для папки «Утилиты»: ⌘ Command+ Shift+ U). На MacScripter есть пример кода для выпадающих меню : Выпадающее меню .

Патрик
источник
Я уже посмотрел на эту ссылку. Сценарий требует интерфейса NIB / Xcode.
daviesgeek
Это отличный пример того, как AppleScript может изменять элементы меню во время выполнения :-)
bmike
Да, но не совсем то, что я ищу.
daviesgeek