Como faço para criar um AppleScript com um menu suspenso sem o Xcode?


8

Como criar um AppleScript que exibe um menu suspenso sem usar o Xcode?

Respostas:


1

Não existe um conceito interno de menu nos diálogos-alertas na linguagem AppleScript.

O mais próximo que você poderia fazer seria nomear alguns arquivos fictícios (em uma pasta temporária) com a ação apropriada e fazer com que o usuário escolha o arquivo rotulado com a ação que você deseja executar.

open folder blah
  with selected file bah
    do whatever

Uma "solução" horrenda para um problema que precisa de um menu de cacau - seja no Xcode ou em outra pessoa - o Xcode / IB é a ferramenta que cria um menu . O MacRuby é uma ótima maneira de criar um script para um aplicativo que precisa de uma interface com mais recursos do que o AppleScript. Você não precisa do Xcode / IB para copiar um aplicativo de script puro.

Você pode criar uma NIB usando o Interface Builder e criar um script usando AppleScript, mas a ponta define o menu em si - não o AppleScript (mesmo que o AppleScript possa preencher ou excluir os itens de menu em tempo de execução).


11

Uma opção seria usar o 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

Você também pode usar choose from list:

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


** O URL original deste repositório do Github mstratmanfoi alterado. A partir de pesquisas, parece que o CocoaDialog mudou para uma organização. Aqui estão as novas mudanças:


1

Além disso, se você só precisa de uma lista para escolher, também pode fazer

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

Google "AppleScript Escolha da lista".


1

Entendo que essa é uma pergunta antiga, mas como a melhor resposta votada diz na documentação do CocoaDialog 2:

Os downloads não funcionam Os downloads do cocoadialog 2 não estão mais disponíveis. Isso ocorre principalmente em parte devido às várias alterações e à falta de armazenamento permanente ao longo dos anos.

e 3 não está chegando até a primavera / verão 18 eu estava procurando outras alternativas e encontrei Pashua :

insira a descrição da imagem aqui (foto tirada do site)

Sob a documentação, isso é chamado de 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 tela:

insira a descrição da imagem aqui

github repo

Depois de usá-lo, descobri que você pode instalar o Pashua.app no ​​diretório de aplicativos ou incorporar o Pashua no seu aplicativo. Não sou o autor disso, mas precisava de uma solução básica para uma GUI e isso não foi mencionado.


0

Você não precisa do Xcode para AppleScript. Basta abrir o AppleScript Editor em Aplicativos / Utilitários (atalho do Finder para a pasta Utilitários: ⌘ Command+ Shift+ U). Há algum código de exemplo para os menus suspensos no MacScripter: menu suspenso .


Eu já olhei para esse link. O script requer uma interface NIB / Xcode.
daviesgeek

É um grande exemplo de como AppleScript pode modificar os itens de menu em tempo de execução embora :-)
bmike

Sim, mas não exatamente o que estou procurando.
daviesgeek 12/08
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.