11 votos

Iconos de la barra de menús que se pueden programar

¿Existe una forma sencilla de añadir iconos personalizados al área de estado de la barra de menús? Idealmente, algo como Growl (por ejemplo, donde sólo se puede ejecutar un comando), pero en lugar de notificaciones, sólo muestra los iconos en la barra de menú.

Principalmente estoy buscando dibujar números que me sirvan para alertarme de varias cosas. Por ejemplo, puedo configurar mi cliente de correo electrónico para que ejecute un comando/AppleScript para actualizar los números cuando llegue un determinado tipo de correo electrónico.

Algo así:

img

6voto

Lingnik Puntos 775

Sugiero empezar con este hilo que describe el uso de llamadas a Cocoa Objective-C desde AppleScript. Hay un proyecto Xcode de ejemplo aquí .

Y Lanzar es una aplicación completa escrita en AppleScript que hace esto de forma funcional. Su archivo de proyecto en Xcode es aquí .

La premisa básica es generar instancias de NSMenuItem y añadirlas a la NSStatusBar del sistema:

set statusMenu to (NSMenu's alloc)'s initWithTitle_("Launch")
-- (build and do stuff with the statusMenu here)
set sysStatusBar to NSStatusBar's systemStatusBar
set statusItem to sysStatusBar's statusItemWithLength_(32)
tell statusItem to setMenu_(statusMenu)
tell statusItem to setHighlightMode_(1)
set menuImage to NSImage's imageNamed_("icon.png")
tell statusItem to setImage_(menuImage)

<em>Extracto de AppleScript del código fuente de Launch, Copyright © Lee Hanken</em>

3voto

0942v8653 Puntos 3617

Bien, he hecho una aplicación para esto. Está en GitHub: 0942v8653/ScriptableStatusBar . Sólo hay que mantener la aplicación en funcionamiento y utilizar el sbar para fijar y eliminar elementos.

Como dice el readme:

sbar set face

2voto

También puede utilizar RubyCocoa :

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run

1voto

Jay Thompson Puntos 1930

Otra opción es utilizar Rumps, una biblioteca de Python que utiliza las clases y funciones de Obj-C.

http://rumps.readthedocs.org/en/latest/

0voto

Tim Brigham Puntos 8727

Sí, puedes crear una aplicación Cocoa para este propósito en Xcode. No, no puedes hacerlo con applescript.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X