Przed dalszym czytaniem: Wiem o lokaju i podobnych programach. Szukam wbudowanego sposobu, aby to zrobić bez aplikacji innej firmy.
W każdym razie napisałem AppleScript, który uruchamia polecenie powłoki. Chcę wyświetlić te dane wyjściowe w pasku menu u góry ... bez Butlera, jak mogę to zrobić?
applescript
display
menu-bar
FALL3N
źródło
źródło
Odpowiedzi:
Ogólnie rzecz biorąc, bez programu stron trzecich, takiego jak Growl, nie ma wbudowanej możliwości, aby to zrobić.
Możesz jednak napisać skrypt lub inny program, taki jak ten, który tu znalazłem , który zapewnia usługę menultu dla Ciebie. Jestem pewien, że integracja z Growl byłaby znacznie łatwiejsza do osiągnięcia.
źródło
Nie ma wbudowanego sposobu, aby to zrobić w OS X. Jednak za pomocą Growl możesz otrzymywać powiadomienia. Oto przykładowy skrypt:
To powinno wyświetlić:
A jeśli masz także włączone inne powiadomienie:
Bardziej zaawansowane techniki opisano tutaj.
źródło
Ponieważ AppleScriptObjC jest częścią macOS, możliwe jest użycie jego frameworku „Foundation” (w tym metod NSMenu), aby osiągnąć to, co prawdopodobnie nie było możliwe w 2012 roku.
Znalazłem interesujący skrypt do tworzenia niestandardowych menu z poziomu AppleScript; z tego wyodrębniłem odpowiedni kod do umieszczenia tekstu w pasku menu macOS . W rzeczywistości używa tylko „tytułu” menu do wstawiania zawartości.
Aby to zademonstrować, zaimplementowałem bardzo prosty skrypt dialogowy, który prosi użytkowników o wpisanie tekstu (oczekiwanie 6 sekund), który jest następnie tymczasowo wyświetlany na pasku menu (5 sekund).
Oto on:
Tego kodu AppleScript można używać w dowolnym skrypcie. (Część „dialogowa” jest opcjonalna…)
user3439894 pomógł w zamknięciu mojego „menu”, patrz ostatni wiersz skryptu. Wielkie dzięki!
źródło
/programming/29168474/creating-a-simple-menubar-app-using-applescript
. . . . . Obawiam się jednak, że moja ostatnia linia (działa przez połowę czasu), którą znalazłem gdzie indziej - i dostosowałem - NIE jest poprawna . . . . . . Nie jestem programistą, więc potrzebuję więcej czasu na zrozumienie kodu.StatusItem's dealloc()
ma zastosowanie tylko do aplikacji AppleScriptObjC, a nie edytora skryptów i przypadkowego awarii.set myText to ...
wiersz kodu , ten przeddisplay dialog
komendą, naprawdę nie robi nic w oparciu o kod wynikowy i dlatego nie jest wcale potrzebny. Innymi słowy, używane tylko wartość stanowimyText
to taka, która jest przypisana podisplay dialog
komenda jest prowadzony i dlaczego ustawienie go do niczego przed tymdisplay dialog
poleceniu jest używany do kodowania i nie jest konieczne w kontekście kodu aktualnie prezentowanego.StatusItem's dealloc()
lubStatusItem's setTitle:""
current application's NSStatusBar's systemStatusBar()'s removeStatusItem:StatusItem