Antes de ler mais: conheço os programas de mordomo e similares. Estou procurando uma maneira INCORPORADA de fazer isso sem um aplicativo de terceiros.
Enfim, escrevi um AppleScript que executa um comando shell. Quero exibir essa saída na barra de menus na parte superior ... sem Butler, como posso fazer isso?
applescript
display
menu-bar
FALL3N
fonte
fonte
Respostas:
Como uma generalidade, sem um programa de terceiros, como o Growl, não há como criar isso.
No entanto, você pode escrever um script ou outro programa como o que encontrei aqui que fornece o serviço de menu para você. Tenho certeza de que a integração do Growl seria muito mais fácil de realizar.
fonte
Não há uma maneira integrada de fazer isso no OS X. No entanto, usando o Growl , você pode receber notificações. Aqui está um exemplo de script para isso:
Isso deve exibir isso:
E se você tiver a outra notificação ativada também:
Técnicas mais avançadas são descritas aqui.
fonte
Como o AppleScriptObjC faz parte do macOS, é possível usar sua estrutura "Foundation" (incluindo os métodos do NSMenu) para alcançar o que provavelmente não era possível em 2012.
Encontrei um script interessante para criar menus personalizados no AppleScript; disso extraí o código adequado para colocar o texto na barra de menus do macOS . De fato, ele usa apenas o "título" de um menu para inserir algum conteúdo.
Para demonstrar isso, implementei um script de diálogo muito básico que solicita aos usuários a entrada de texto (aguardando 6 segundos), que é exibida temporariamente na barra de menus (5 segundos).
Aqui está:
Esse código AppleScript pode ser usado em qualquer script seu. (A parte "diálogo" é opcional ...)
user3439894 ajudou a fechar meu "menu", veja a última linha do script. Muito obrigado!
fonte
/programming/29168474/creating-a-simple-menubar-app-using-applescript
. . . . . Receio, porém, que minha última linha (que funciona metade do tempo) que encontrei em outro lugar - e adaptada - NÃO esteja correta . . . . . . Como não sou programador, preciso de mais tempo para entender o código.StatusItem's dealloc()
só será aplicável ao aplicativo AppleScriptObjC e não ao Editor de scripts e ao travá-lo acidentalmente.set myText to ...
linha de código , odisplay dialog
comando anterior realmente não faz nada com base no código resultante e, portanto, não é de todo necessário. Em outras palavras, o único utilizado valor demyText
é o que é atribuído após odisplay dialog
comando é executado e por defini-la para qualquer coisa antes do odisplay dialog
comando não é utilizada codificação e não é necessário no contexto do código atualmente apresentada.StatusItem's dealloc()
ouStatusItem's setTitle:""
eu usaria:current application's NSStatusBar's systemStatusBar()'s removeStatusItem:StatusItem