2010-04-21 8 views
3

Voici encore un de ces "comment passer de l'exécution avec une icône de dock à une course sans un" questions avec une torsion .. Je ne veux pas l'icône du dock mais je veux une barre de menu lorsque l'application est à l'avant. Est-ce possible? L'exécution d'une application avec LSUIElement définie sur 1 dans le plist lancera l'application sans icône de quai, n'apparaissant pas dans la liste des commutateurs de l'onglet commande et sans menu.Application Cocoa avec barre de menus mais pas de menu Dock Icon/switch

Vous pouvez passer de ce mode au mode "normal" avec tous les trois activés via SetSystemModeUI à partir de 10.2 et via NSApplication setApplicationActivationPolicy depuis 10.6, mais surtout il n'y a pas de retour au mode précédent (allez figure). Donc un moyen de contourner ce problème serait de lancer LSUIElement = 1 puis d'activer la barre de menu lorsque l'application obtient le focus et la désactiver sur l'application en perdant le focus .. hélas, je ne trouve pas une façon de faire cette.

Quelqu'un peut-il aider?

Meilleures salutations,

Frank

Répondre

1

Malheureusement, ce n'est pas possible. Vous ne pouvez transformer le type de processus que dans une seule direction (d'une application en arrière-plan à une application de premier plan) et pas dans l'autre sens.

+0

J'ai une application qui fait exactement cela sur 10.9 et je trouve qu'il est buggé. Une fois que vous avez transformé l'application au premier plan, la barre de menu (Fichier, Modifier, Affichage, etc.) fonctionne parfois et parfois non. Vous devez sélectionner une autre application, puis revenir à la vôtre pour que la barre de menu apparaisse. Intermittent. La meilleure pratique pourrait être de ne pas utiliser l'astuce de transformation. – Bryan

0

Moi aussi, je cherchais une solution, mais il est avéré être assez simple: Dans le Info.plist fichier de projet doit ajouter la clé

« L'application est un agent (UIElement) » = OUI