2011-03-26 9 views
7

Soy bastante nuevo en Cocoa, así que discúlpeme por cualquier error estúpido que cometa. Tengo un NSStatusItem, que quiero usar para abrir un menú. Sin embargo, hasta donde sé y he escuchado en diferentes formas, sin una vista personalizada, se limita a un menú desplegable. ¿Es esto cierto? Y si es así, ¿cómo se hace una vista personalizada para hacer algo (por ejemplo, abrir una ventana en mi caso)? Gracias por cualquier ayuda.¿Cómo abrir una ventana al hacer clic en NSStatusItem?

Respuesta

14

No, no es verdad. Necesita configurar el objetivo y la acción para el elemento de estado para llamar a un método que hace lo que quiere (abre la ventana).

// This goes where you set up the status item 
NSStatusItem *statusItem; // You need to get this from the status bar 
[statusItem setTarget:self]; 
[statusItem setAction:@selector(openWindow:)]; 

// This method is called when the status item is clicked 
- (void)openWindow:(id)sender { 
    NSWindow *window = [self window]; // Get the window to open 
    [window makeKeyAndOrderFront:nil]; 
} 

También puede llamar a su [NSApp activateIgnoringOtherApps:nil]; openWindow: método para asegurarse de que la ventana se abre no está detrás de la ventana de alguna otra aplicación.

+0

Gracias! Funciona perfectamente ahora :) – Luke

+1

Gracias por la entrada, resumí esto en una publicación de blog http://www.jademind.com/blog/posts/show-nswindow-below-your-nsstatusitem otra vez – anka

Cuestiones relacionadas