¿Cómo hago un AppleScript con un menú desplegable sin Xcode?

8

¿Cómo hago un AppleScript que muestre un menú desplegable sin usar Xcode?

daviesgeek
fuente

Respuestas:

1

No existe un concepto integrado de menú en los cuadros de diálogo-alertas dentro del lenguaje AppleScript.

Lo más cercano que podría hacer sería nombrar algunos archivos ficticios (en una carpeta temporal) con la acción apropiada y hacer que el usuario elija el archivo etiquetado con la acción que desea realizar.

open folder blah
  with selected file bah
    do whatever

Una horrenda "solución" para un problema que necesita un menú de cacao, ya sea que lo haga en Xcode o que alguien más lo haga, Xcode / IB es la herramienta que crea un menú . MacRuby es una buena manera de escribir una aplicación que necesita una interfaz de usuario más completa que AppleScript. No necesita Xcode / IB para borrar una aplicación de un script puro.

Puede crear una NIB usando Interface Builder y escribir todo usando AppleScript, pero la punta define el menú en sí, no AppleScript (incluso si AppleScript puede llenar o eliminar los elementos del menú en tiempo de ejecución).

bmike
fuente
11

Una opción sería usar 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

También puedes usar choose from list:

choose from list {"aa", "bb", "cc"} with title "Title" with prompt "Please choose" default items "bb" with multiple selections allowed


** La URL original para este repositorio de Github mstratmanha cambiado. De la investigación parece que CocoaDialog ha pasado a una organización. Aquí están los nuevos cambios:

Lri
fuente
1

Además, si solo necesita una lista para elegir, también puede hacer

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

Google "AppleScript Elija de la lista".

joeyslaptop
fuente
1

Entiendo que esta es una vieja pregunta, pero como la mejor respuesta votada dice en la documentación de CocoaDialog 2:

Las descargas no funcionan Las descargas de cocoadialog 2 ya no están disponibles. Esto se debe en parte a los diversos cambios y a la falta de almacenamiento permanente a lo largo de los años.

y 3 no llegará hasta la primavera / verano 18 Estaba buscando otras alternativas y encontré Pashua :

ingrese la descripción de la imagen aquí (foto tomada del sitio)

Bajo la documentación esto se llama 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

Captura de pantalla:

ingrese la descripción de la imagen aquí

Github repo

Después de usarlo, descubrí que puedes instalar Pashua.app en tu directorio de aplicaciones o puedes incrustar Pashua en tu aplicación. No soy el autor de esto, pero necesitaba una solución base para una GUI y esto no fue mencionado.

ʀ2ᴅ2
fuente
0

No necesita Xcode para AppleScript. Simplemente abra el Editor AppleScript en Aplicaciones / Utilidades (acceso directo del Finder para la carpeta Utilidades: ⌘ Command+ Shift+ U). Hay algunos códigos de muestra para menús desplegables en MacScripter: menú desplegable .

Patricio
fuente
Ya he mirado ese enlace. El script requiere una interfaz NIB / Xcode.
daviesgeek
Sin embargo, es un gran ejemplo de cómo AppleScript puede modificar los elementos del menú en tiempo de ejecución :-)
bmike
Sí, pero no exactamente lo que estoy buscando.
daviesgeek