Bevor ich weiter lese: Ich kenne mich mit Butler und ähnlichen Programmen aus. Ich suche nach einer eingebauten Möglichkeit, dies ohne eine Drittanbieter-App zu tun.
Wie auch immer, ich habe ein AppleScript geschrieben, das einen Shell-Befehl ausführt. Ich möchte diese Ausgabe in der Menüleiste oben anzeigen ... ohne Butler, wie kann ich das tun?
applescript
display
menu-bar
FALL3N
quelle
quelle
Antworten:
Im Allgemeinen gibt es ohne ein Programm eines Drittanbieters wie Growl keine eingebaute Möglichkeit, dies zu tun.
Sie können jedoch ein Skript oder ein anderes Programm wie das hier gefundene schreiben , das den Menulettdienst für Sie bereitstellt. Ich bin sicher, dass die Growl-Integration viel einfacher zu erreichen wäre.
quelle
In OS X gibt es keine integrierte Möglichkeit, dies zu tun. Mit Growl können Sie jedoch Benachrichtigungen erhalten. Hier ist ein Beispielskript dafür:
Das sollte Folgendes anzeigen:
Und wenn Sie auch die andere Benachrichtigung aktiviert haben:
Weiterführende Techniken werden hier beschrieben .
quelle
Da AppleScriptObjC Teil von macOS ist, ist es möglich, das "Foundation" -Framework (einschließlich der Methoden von NSMenu) zu verwenden, um das zu erreichen, was 2012 wahrscheinlich nicht möglich war.
Ich habe ein interessantes Skript gefunden, um benutzerdefinierte Menüs in AppleScript zu erstellen. Daraus habe ich geeigneten Code extrahiert, um Text in die Menüleiste von macOS zu platzieren . Tatsächlich wird nur der "Titel" eines Menüs zum Einfügen von Inhalten verwendet.
Um dies zu demonstrieren, habe ich ein sehr einfaches Dialogskript implementiert, das Benutzer zur Texteingabe auffordert (Wartezeit 6 Sek.), Das dann vorübergehend in der Menüleiste angezeigt wird (5 Sek.).
Hier ist es:
Dieser AppleScript-Code kann in jedem Ihrer Skripte verwendet werden. (Sein "Dialog" Teil ist optional ...)
user3439894 half beim Schließen meines "Menüs", siehe letzte Zeile des Skripts. Vielen Dank!
quelle
/programming/29168474/creating-a-simple-menubar-app-using-applescript
. . . . . Ich befürchte jedoch, dass meine letzte Zeile (die die Hälfte der Zeit funktioniert), die ich woanders gefunden und angepasst habe, NICHT korrekt ist . . . . . . Ich bin kein Programmierer, daher brauche ich etwas mehr Zeit, um Code zu verstehen.StatusItem's dealloc()
gilt nur für die AppleScriptObjC-App und nicht für den Skript-Editor, der versehentlich abstürzt.set myText to ...
Zeile des Codes , die man vordisplay dialog
Befehl wirklich tut nichts auf der Grundlage des nachfolgenden Code und ist daher nicht benötigt. Mit anderen Worten, der einzigen verwendete Wert vonmyText
ist , dass die nach dem zugeordnetendisplay dialog
Befehl wird ausgeführt und warum es zu etwas Einstellung vor dem demdisplay dialog
Befehl ist nicht verwendete Codierung und nicht notwendig , im Rahmen des Code zur Zeit dargestellt.StatusItem's dealloc()
oderStatusItem's setTitle:""
ich würde verwenden:current application's NSStatusBar's systemStatusBar()'s removeStatusItem:StatusItem