Jak zrobić AppleScript, który wyświetla menu rozwijane bez użycia Xcode?
Jak zrobić AppleScript, który wyświetla menu rozwijane bez użycia Xcode?
Odpowiedzi:
W oknach dialogowych-alertów w języku AppleScript nie ma wbudowanej koncepcji menu.
Najbliższe, co możesz zrobić, to nazwać niektóre fikcyjne pliki (w folderze tymczasowym) odpowiednią akcją i poprosić użytkownika o wybranie pliku oznaczonego akcją, którą chcesz wykonać.
open folder blah
with selected file bah
do whatever
Przerażające „rozwiązanie” problemu, który wymaga menu kakao - niezależnie od tego, czy robisz to w Xcode, czy w innej osobie - Xcode / IB to narzędzie, które tworzy menu . MacRuby to dobry sposób na napisanie skryptu aplikacji, która wymaga bardziej funkcjonalnego interfejsu użytkownika niż AppleScript. Nie potrzebujesz Xcode / IB do rubinowania aplikacji z czystego skryptu.
Możesz utworzyć NIB za pomocą Konstruktora interfejsów i skrypty to wszystko za pomocą AppleScript, ale stalówka definiuje samo menu - nie AppleScript (nawet jeśli AppleScript może wypełnić lub usunąć elementy menu w czasie wykonywania).
Jedną z opcji byłoby użycie 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
Możesz także użyć choose from list
:
choose from list {"aa", "bb", "cc"} with title "Title" with prompt "Please choose" default items "bb" with multiple selections allowed
** Oryginalny adres URL tego repozytorium Github mstratman
został zmieniony. Z badań wynika, że CocoaDialog przekształcił się w organizację. Oto nowe zmiany:
Dodatkowo, jeśli potrzebujesz tylko listy do wyboru, możesz to zrobić
choose from list listYouDefined with prompt "Choose from the list."
Google „AppleScript Wybierz z listy”.
Rozumiem, że to stare pytanie, ale ponieważ najlepsza głosowana odpowiedź brzmi w dokumentacji CocoaDialog 2:
Pliki do pobrania nie działają Pliki do pobrania dla cocoadialog 2 nie są już dostępne. Wynika to głównie z powodu różnych zmian i braku trwałego przechowywania na przestrzeni lat.
a 3 nie nadchodzi do wiosny / lata 18 Szukałem innych alternatyw i znalazłem Pashua :
W dokumentacji nazywa się to 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
Zrzut ekranu:
github repo
Po użyciu zauważyłem, że możesz zainstalować Pashua.app w katalogu aplikacji lub możesz osadzić Pashua w swojej aplikacji. Nie jestem autorem tego, ale potrzebowałem podstawowego rozwiązania dla GUI i nie zostało to wspomniane.
Nie potrzebujesz Xcode dla AppleScript. Wystarczy otworzyć edytor AppleScript w Aplikacje / Narzędzia (skrót Findera do folderu Narzędzia: ⌘ Command+ Shift+ U). W MacScripter: Menu rozwijane znajduje się przykładowy kod dla menu rozwijanych .