Como criar um AppleScript que exibe um menu suspenso sem usar o Xcode?
fonte
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).
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 mstratman
foi alterado. A partir de pesquisas, parece que o CocoaDialog mudou para uma organização. Aqui estão as novas mudanças:
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".
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 :
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:
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.
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 .