Як зробити 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 repo
Після його використання я виявив, що ви можете встановити Pashua.app у каталог додатків або вбудувати Pashua у свій додаток. Я не автор цього, але мені було потрібно базове рішення для GUI, і це не згадувалося.
Вам не потрібен Xcode для AppleScript. Просто відкрийте редактор AppleScript у програмі "Програми / утиліти" (ярлик "Finder" для папки "Утиліти": ⌘ Command+ Shift+ U). Існує деякий зразок коду для випадаючих меню в MacScripter: Випадаюче меню .