Come faccio a creare un AppleScript che visualizza un menu a discesa senza utilizzare Xcode?
Come faccio a creare un AppleScript che visualizza un menu a discesa senza utilizzare Xcode?
Risposte:
Non esiste un concetto integrato di menu nei dialoghi-avvisi all'interno del linguaggio AppleScript.
Il più vicino che potresti fare sarebbe nominare alcuni file fittizi (in una cartella temporanea) con l'azione appropriata e fare in modo che l'utente scelga il file etichettato con l'azione che si desidera eseguire.
open folder blah
with selected file bah
do whatever
Una "soluzione" orribile a un problema che ha bisogno di un menu di cacao - sia che tu lo faccia in Xcode o qualcun altro - Xcode / IB è lo strumento che crea un menu . MacRuby è un ottimo modo per creare script di un'app che necessita di un'interfaccia utente più completa di AppleScript. Non è necessario Xcode / IB per rubare un'app dallo script puro.
È possibile creare un NIB utilizzando Interface Builder e copiarlo tutto utilizzando AppleScript, ma il pennino definisce il menu stesso, non AppleScript (anche se AppleScript può popolare o eliminare le voci di menu in fase di esecuzione).
Un'opzione sarebbe usare 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
Puoi anche semplicemente usare choose from list
:
choose from list {"aa", "bb", "cc"} with title "Title" with prompt "Please choose" default items "bb" with multiple selections allowed
** L'URL originale per questo repository Github di mstratman
è cambiato. Dalla ricerca sembra che CocoaDialog sia passato a un'organizzazione. Ecco le nuove modifiche:
Inoltre, se hai solo bisogno di un elenco tra cui scegliere, puoi anche farlo
choose from list listYouDefined with prompt "Choose from the list."
Google "AppleScript Scegli dalla lista".
Capisco che questa è una vecchia domanda ma dato che la migliore risposta votata nella documentazione per CocoaDialog 2:
I download non funzionano I download per cocoadialog 2 non sono più disponibili. Ciò è dovuto in parte ai vari cambiamenti e alla mancanza di memoria permanente nel corso degli anni.
e 3 non arriverà fino alla primavera / estate 18 Stavo cercando altre alternative e ho trovato Pashua :
Sotto la documentazione questo si chiama a 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
Immagine dello schermo:
Github repo
Dopo averlo usato, ho scoperto che è possibile installare Pashua.app nella directory dell'applicazione oppure è possibile incorporare Pashua nella propria app. Non sono l'autore di questo ma avevo bisogno di una soluzione di base per una GUI e questo non è stato menzionato.
Non è necessario Xcode per AppleScript. Apri l'Editor AppleScript in Applicazioni / Utility (scorciatoia del Finder per la cartella Utility: ⌘ Command+ Shift+ U). Esiste un codice di esempio per i menu a discesa su MacScripter: menu a discesa .