Comment créer un AppleScript qui affiche un menu déroulant sans utiliser Xcode?
la source
Comment créer un AppleScript qui affiche un menu déroulant sans utiliser Xcode?
Il n'y a pas de concept intégré de menu dans les dialogues-alertes dans le langage AppleScript.
Le plus proche que vous pourriez faire serait de nommer certains fichiers fictifs (dans un dossier temporaire) avec l'action appropriée et de demander à l'utilisateur de choisir le fichier étiqueté avec l'action que vous souhaitez effectuer.
open folder blah
with selected file bah
do whatever
Une horrible "solution" à un problème qui a besoin d'un menu cacao - que vous le fassiez dans Xcode ou quelqu'un d'autre le fait - Xcode / IB est l'outil qui crée un menu . MacRuby est un bon moyen de créer un script pour une application qui a besoin d'une interface utilisateur plus complète qu'AppleScript. Vous n'avez pas besoin de Xcode / IB pour créer une application à partir d'un script pur.
Vous pouvez créer une NIB à l'aide d'Interface Builder et tout écrire à l'aide d'AppleScript, mais la nib définit le menu lui-même - pas AppleScript (même si AppleScript peut remplir ou supprimer les éléments de menu au moment de l'exécution).
Une option serait d'utiliser 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
Vous pouvez également simplement utiliser 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 d'origine de ce dépôt Github par mstratman
a changé. D'après les recherches, il semble que CocoaDialog soit passé à une organisation. Voici les nouveaux changements:
De plus, si vous avez juste besoin d'une liste parmi laquelle choisir, vous pouvez également faire
choose from list listYouDefined with prompt "Choose from the list."
Google "AppleScript Choisissez dans la liste".
Je comprends que c'est une vieille question mais comme la meilleure réponse votée le dit dans la documentation de CocoaDialog 2:
Les téléchargements ne fonctionnent pas Les téléchargements pour cocoadialog 2 ne sont plus disponibles. Cela est principalement dû en partie aux divers changements et au manque de stockage permanent au fil des ans.
et 3 ne vient pas avant le printemps / été 18 Je cherchais d'autres alternatives et j'ai trouvé Pashua :
Dans la documentation, cela s'appelle 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
Capture d'écran:
Github repo
Après l'avoir utilisé, j'ai découvert que vous pouvez installer Pashua.app dans votre répertoire d'application ou que vous pouvez intégrer Pashua dans votre application. Je ne suis pas l'auteur de cela, mais j'avais besoin d'une solution de base pour une interface graphique et cela n'a pas été mentionné.
Vous n'avez pas besoin de Xcode pour AppleScript. Ouvrez simplement l'éditeur AppleScript dans Applications / Utilitaires (raccourci du Finder pour le dossier Utilitaires: ⌘ Command+ Shift+ U). Il existe des exemples de code pour les menus déroulants sur MacScripter: menu déroulant .