¿Es posible tener un indicador de reproducción en la barra de menú OSX?

1

En mi iPhone, hasta iOS 6, cada vez que la música se reproduce, aparece un símbolo de reproducción (y desaparece cuando no se reproduce música).

¿Cómo puedo lograr un efecto similar en la barra de menú de OSX Mountain Lion?

    
pregunta bassplayer7 13.01.2013 - 01:34

2 respuestas

5

Aquí hay un código de ejemplo para hacer esto en Cocoa (puedes pegarlo en un nuevo proyecto XCode y compilarlo):

AppDelegate.h:

    NSStatusItem* statusItem;

AppDelegate.m:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[NSDistributedNotificationCenter defaultCenter] addObserver:self
                                                        selector:@selector(iTunesNotification:)
                                                            name:@"com.apple.iTunes.playerInfo"
                                                          object:nil]; //registering for notifications from iTunes

    [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; //No icon in the dock, menubar only

    statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; // For the icon in the status bar
}

- (void) iTunesNotification:(NSNotification *)note {
    NSDictionary *information = [note userInfo];
    NSString* state = [information objectForKey:@"Player State"];

    if([state isEqualToString:@"Paused"]) {
        //hiding the indicator
        [statusItem setTitle:@""];
    } else if ([state isEqualToString:@"Playing"]) {
        //showing the indicator
        [statusItem setTitle:@"▶"];
    }
}

El único defecto que pude ver en esta muestra es que estoy usando un carácter para el ícono de reproducción y no una imagen. Podría ser un problema cuando la codificación desordena algo.

    
respondido por el Matthieu Riegler 13.01.2013 - 03:26
1

Puedes ver algunas de las aplicaciones de la barra de menús que controlan iTunes por ti. Algunos de ellos pueden tener una interfaz agradable para eso. Aquí hay algunos enlace

    
respondido por el Keith Smiley 13.01.2013 - 03:29

Lea otras preguntas en las etiquetas