Jak zrobić AppleScript z rozwijanym menu bez Xcode?

8

Jak zrobić AppleScript, który wyświetla menu rozwijane bez użycia Xcode?

daviesgeek
źródło

Odpowiedzi:

1

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).

bmike
źródło
11

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 mstratmanzostał zmieniony. Z badań wynika, że CocoaDialog przekształcił się w organizację. Oto nowe zmiany:

Lri
źródło
1

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”.

joeyslaptop
źródło
1

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 :

wprowadź opis zdjęcia tutaj (zdjęcie pochodzi z witryny)

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:

wprowadź opis zdjęcia tutaj

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.

ʀ2ᴅ2
źródło
0

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 .

Patrick
źródło
Już spojrzałem na ten link. Skrypt wymaga interfejsu NIB / Xcode.
daviesgeek
Jest to jednak świetny przykład tego, jak AppleScript może modyfikować elementy menu w czasie wykonywania :-)
bmike
Tak, ale nie do końca to, czego szukam.
daviesgeek,