Як зробити AppleScript зі спадним меню без Xcode?


8

Як зробити AppleScript, який відображає спадне меню без використання Xcode?

Відповіді:


1

Немає вбудованої концепції меню в діалогах-попередженнях на мові AppleScript.

Найближчим, що ви могли б зробити, було б назвати кілька фіктивних файлів (у тимчасовій папці) відповідною дією та дозволити користувачеві вибрати файл із позначкою дії, яку ви хотіли виконати.

open folder blah
  with selected file bah
    do whatever

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

Ви можете створити NIB за допомогою Interface Builder і все це за допомогою сценарію AppleScript, але кнопка визначає саме меню - не AppleScript (навіть якщо AppleScript може заповнити або видалити елементи меню під час виконання).


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 перейшов до органу. Ось нові зміни:


1

Крім того, якщо вам просто потрібен список на вибір, ви також можете це зробити

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

Google "Виберіть AppleScript зі списку".


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 repo

Після його використання я виявив, що ви можете встановити Pashua.app у каталог додатків або вбудувати Pashua у свій додаток. Я не автор цього, але мені було потрібно базове рішення для GUI, і це не згадувалося.


0

Вам не потрібен Xcode для AppleScript. Просто відкрийте редактор AppleScript у програмі "Програми / утиліти" (ярлик "Finder" для папки "Утиліти": ⌘ Command+ Shift+ U). Існує деякий зразок коду для випадаючих меню в MacScripter: Випадаюче меню .


Я вже переглянув це посилання. Сценарій вимагає інтерфейсу NIB / Xcode.
daviesgeek

Це чудовий приклад того, як AppleScript може змінювати пункти меню під час виконання :-)
bmike

Так, але не саме те, що я шукаю.
daviesgeek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.