8 votes

Comment créer un AppleScript avec un menu déroulant sans Xcode ?

Comment créer un AppleScript qui affiche un menu déroulant sans utiliser Xcode ?

12voto

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 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 originale de ce repo Github par mstratman a changé. D'après les recherches, il semble que CocoaDialog est passé à une organisation. Voici les nouveaux changements :

1voto

Oskar Points 1242

Il n'y a pas de concept intégré de menu dans les boîtes de dialogue et les alertes du langage AppleScript.

Le mieux serait de nommer des 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 voulez 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 que quelqu'un d'autre le fasse -. Xcode/IB est l'outil qui permet de créer un menu . MacRuby est un moyen agréable de script 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 de script purs.

Vous pourriez créer une NIB à l'aide d'Interface Builder et script tout cela à 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 du menu au moment de l'exécution).

1voto

joeyslaptop Points 11

En outre, si vous avez simplement besoin d'une liste à partir de laquelle choisir, vous pouvez également faire ce qui suit

choose from list listYouDefined with prompt "Choose from the list."

Google "AppleScript Choisir dans la liste".

1voto

ʀ2ᴅ2 Points 996

Je comprends qu'il s'agit d'une vieille question, mais comme la meilleure réponse votée indique dans la documentation de CocoaDialog 2 :

Les téléchargements ne fonctionnent pas Les téléchargements pour cocoadialog 2 ne fonctionnent plus disponibles. Ceci est dû en partie à de stockage permanent au fil des ans.

et 3 ne sera pas disponible avant le printemps/été 18, j'ai cherché d'autres alternatives et j'ai trouvé Pashua :

enter image description here (image extraite du site)

Dans le cadre de la la documentation c'est ce qu'on appelle un 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 :

enter image description here

Github repo

Après l'avoir utilisé, j'ai découvert que vous pouvez installer Pashua.app dans votre répertoire d'applications ou que vous pouvez intégrer Pashua dans votre application. Je ne suis pas l'auteur de ce document mais j'avais besoin d'une solution de base pour une interface graphique et cela n'était pas mentionné.

0voto

Mark Derricutt Points 565

Vous n'avez pas besoin de Xcode pour AppleScript. Il suffit d'ouvrir l'éditeur AppleScript dans Applications/Utilities (raccourci du Finder pour le dossier Utilities : Command + Shift + U ). Il existe des exemples de code pour les menus déroulants sur le site MacScripter : Menu déroulant .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X