Come faccio a creare un AppleScript con un menu a discesa senza Xcode?


8

Come faccio a creare un AppleScript che visualizza un menu a discesa senza utilizzare Xcode?

Risposte:


1

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


11

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:


1

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


1

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 :

inserisci qui la descrizione dell'immagine (foto tratta dal sito)

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:

inserisci qui la descrizione dell'immagine

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.


0

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 .


Ho già visto quel link. Lo script richiede un'interfaccia NIB / Xcode.
daviesgeek,

È un ottimo esempio di come AppleScript può modificare le voci di menu in fase di esecuzione :-)
bmike

Sì, ma non è esattamente quello che sto cercando.
daviesgeek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.