2011-07-25 2 views
17

Lorsque vous avez une application en mode plein écran (dans un espace plein écran), la barre de menus est masquée, sauf si vous "pousser" le haut de l'écran. Cependant, si vous appuyez sur la touche de raccourci du projecteur, la barre de menu se déplace vers l'écran avec la barre de recherche du projecteur. Excellent.comportement de l'application menubar vs espaces d'application en plein écran (mac OS 10.7/lion)

Je migre une application de barre d'état/sans visage que je souhaite émuler la gestion de la barre de menus de ce projecteur. Sous Snow Leopard l'application répond à une touche de raccourci système en affichant un menu (il a un élément NSStatusBar et j'appelle popUpStatusItemMenu). Sous Lion lorsque l'application est en mode plein écran/espace, la barre de menus reste cachée pour l'application en plein écran (notez cependant que la touche de raccourci ÉLEVE l'élément de la barre d'état et en utilisant le clavier je peux activer des actions individuelles sur le menu ne peut pas voir le menu apparaître).

Pour réitérer - quelqu'un sait comment le projecteur (sous le lion) affiche la barre de menu en réponse à un raccourci clavier? Ou devrais-je demander quand une meilleure façon de gérer mon interface utilisateur serait sous Lion?

grâce,

+0

+1 Je veux savoir aussi !!! :) – nacho4d

+0

Que se passerait-il si votre application, après avoir reçu sa commande de hockey, appuyait rapidement sur Cmd + espace deux fois (ouvrir et fermer le projecteur)? La barre d'état glisserait vers le bas, le menu des projecteurs irait si vite qu'ils ne le verraient même pas (probablement ne serait même pas rendu), et la barre d'état resterait si vous montriez votre menu d'application directement après. Probablement pas ce que vous cherchez, mais une approche patchwork intéressante de toute façon :) – Greg

+0

Cela fait un certain nombre d'années que je fais quelque chose de similaire ici dans swift. Y a-t-il une mise à jour à ce sujet? –

Répondre

2

je me sens raisonnablement certain que Spotlight utilise des interfaces privées pour changer le mode de présentation de la session de connexion. Vous pouvez changer le mode de présentation pour une application en utilisant -[NSApplication setPresentationOptions:] (ou l'équivalent carbone obsolète mais encore disponible SetSystemUIMode()), mais ceux-ci ne se propagent explicitement à la session de connexion à partir de l'application "frontful frontful".

Je suggère filing a suggestion pour qu'une API demande que certains éléments de l'interface utilisateur (barre de menus, dock) soient affichés s'ils sont actuellement en mode autohide depuis l'arrière-plan.

Questions connexes