Comment masquer l'icône du Dock
Je veux faire une préférence pour cacher l'icône du Dock et montrant un NSStatusItem
.
Je peux créer le StatusItem mais je ne sais pas comment faire pour supprimer l'icône du Dock. :-/
Des idées?
- si votre application est basée sur Qt5, vous devez également définir la envvar
QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM
InformationsquelleAutor papr | 2009-03-06
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes à la recherche pour le
LSUIElement
dans l'Info.plistVoir une courte discussion ici sur l'allumer/éteindre
De le faire tout en respectant à la Pomme, les lignes directrices de ne pas modifier ensembles d'application et de garantir que les applications du Mac App Store/(Lion apps ?) n'auront pas leur signature brisé par l'info.plist modification, vous pouvez définir LSUIElement à 1 par défaut, puis au lancement de l'application n' :
de montrer que c'est l'icône du dock, ou de les contourner si l'utilisateur a choisi de ne pas vouloir l'icône.
Mais il ya un côté en effet, le menu de l'application n'est pas visible jusqu'à ce que la perte et reprend focus.
Source: Faire une Case à cocher Basculer L'Icône du Dock Sur et en dehors
Personnellement, je préfère ne pas fixer d'Info.plist option et utiliser
TransformProcessType(&psn, kProcessTransformToForegroundApplication)
ouTransformProcessType(&psn, kProcessTransformToUIElementApplication)
basé sur ce qui est le réglage de l'utilisateur.Vous pouvez utiliser ce qu'on appelle de la Politique d'Activation:
Objective-C
Swift 4
Ce doit masquer l'icône du dock.
Voir aussi
NSRunningApplicationActivationPolicy
.NSApplicationActivationPolicyAccessory
permet en fait le menu principal pour afficher.Dans Xcode 4, il est indiqué que l'Application de l'agent (UIElement)" et il est un Booléen.
Dans votre Info.plist de contrôle-cliquez sur un espace vide et sélectionnez "Ajouter une Ligne" dans le menu
Type de l'Application de l'agent (UIElement)"
Ensemble OUI.
DE le rendre facultatif, j'ai ajouté la ligne suivante dans mon code (merci Valexa!)
Mise à jour pour Swift: (Utiliser les deux voies a été présenté ci-dessus, ils ont le même résultat)
Si vous voulez faire une préférence de l'utilisateur, alors vous ne pouvez pas utiliser UIElement. UIElement réside dans le bundle de l'application, vous ne devez pas modifier les fichiers dans l'application bundle sous peine d'annulation de la bundles signature.
La meilleure solution que j'ai trouvé est basé sur cet excellent article . Ma solution est basé sur le commentaire par Dan. En bref, Il n'y a aucun moyen de le faire avec du Cacao, mais il est possible avec un peu de Carbone code.
L'article suggère également de faire un helper application qui gère l'icône du dock exclusivement. L'application principale démarre ensuite et tue cette application en fonction des préférences constatées des utilisateurs. Cette approche me semble plus robuste que d'utiliser le Carbone de code, mais je n'ai pas encore essayé.