2010-06-07 6 views
0

J'essaie de créer une application de barre d'état simple dans Obj-C/Cocoa. Par conséquent, je l'ai fait de façon pragmatique - en déclarant un NSStatusItem, en l'ajoutant à NSStatusBar et en lui donnant un objet NSMenu. Un peu comme ça ...Application de barre d'état Mac OS X - Masquage à partir du menu Cmd/Alt?

NSStatusBar *bar = [NSStatusBar systemStatusBar]; 

theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; 
[theItem retain]; 

[theItem setTitle: NSLocalizedString(@"Tablet",@"")]; 
[theItem setHighlightMode:YES]; 
[theItem setMenu:theMenu]; 

(exemple tiré de « barre d'état Sujets de programmation », d'Apple Documentation)

Maintenant idéalement, je voudrais cette application à fonctionner et ne pas être accessible à partir du CMD/ALT fenêtre changeant "menu" (faute d'un meilleur mot), j'ai vu des applications le faire avant et aimerais vraiment ça. L'idée est que je veux juste qu'elle soit accessible à partir de chaque fenêtre, sans avoir son propre NSMenu sur la barre d'état, et sans pouvoir l'avoir comme application active (elle n'est donc pas capable de prendre en charge toute la barre d'état , et il ne peut pas être vu par CMD/ALT)

En outre, je me demandais si le StatusBarItem soutient la capacité de glisser-déposer un article sur lui? Je ne suis pas sûr si c'est une limitation de la NSStatusBar cependant.

J'ai lu sur les deamons et les agents, mais cela semble beaucoup trop bas niveau/tuer pour une application si simpliste!

Bravo à l'avance!

+0

Vous voulez dire la fonction Commande-Onglet? Et je ne comprends pas votre question. Vous voulez un élément de barre d'état qui n'est pas un menu mais est accessible dans toutes les applications? Est-ce que cela veut dire que l'icône serait visible, il n'y aurait pas de menu quand un utilisateur clique dessus? En outre, je ne crois pas avoir jamais vu une application de barre d'état prenant en charge le glisser-déposer, mais cela ne signifie pas que ce n'est pas possible. –

+0

Command-Tab même - faute de frappe en mon nom! Je veux essentiellement une application de barre d'état - je peux le faire très bien, mais je veux le cacher de la fonction de l'onglet de commande. Je ne suis pas sûr de la fonctionnalité de glisser-déposer, j'ai peut-être vu quelque chose de similaire. Bien que, il peut avoir été implémenté en utilisant une partie du cadre privé SystemUIPlugin - et "NSMenuExtra". Naturellement, j'ai envisagé d'examiner cela - mais l'idée d'utiliser un framework privé et de l'interrompre pendant une mise à niveau n'est pas idéale! – Moddy

Répondre

1

Insérez la clé LSUIElement dans le fichier info.plist de votre application. Pour faire glisser et déposer, vous définissez la vue de l'élément d'état à n'importe quelle vue devrait recevoir la baisse et il fonctionne normalement à partir de là.

+0

Je vais essayer ça - ça devrait être une solution idéale! Je reviendrai avec les résultats! – Moddy

Questions connexes