J'ai écrit une petite application qui vit dans le NSStatusBar. Je veux avoir un raccourci global qui, lorsqu'il est touché, affiche le contenu de la barre de menu, exactement comme le comportement du projecteur. J'ai ajouté un raccourci clavier global à mon application, mais je n'arrive pas à afficher la barre meun. Comment puis-je faire ceci? J'ai essayé avec "popUpContextMenu", mais cette méthode affiche le menu dans le coin inférieur gauche, je veux que le menu s'ouvre juste sous l'icône du menu NSStatusBar.Comment afficher un NSMenu par programme?
Répondre
Je ne pense pas qu'il existe une méthode prise en charge pour ce faire sans peut-être utiliser le cadre d'accessibilité pour simuler un clic sur votre élément d'état. Quoi qu'il en soit, ce n'est probablement pas une bonne idée d'abuser d'un menu de cette façon.
L'élément de barre de menu Spotlight n'utilise pas de menu NSMenu, il utilise une fenêtre/vue personnalisée. Vous pourriez envisager d'aller sur cette route si vous avez une sorte de vue personnalisée à afficher.
Vous pouvez le faire, Apple fournit une méthode pour cela "popUpStatusItemMenu"
http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSStatusItem_Class/Reference/Reference.html#//apple_ref/occ/instm/NSStatusItem/popUpStatusItemMenu: –
Un problème que j'ai trouvé Cependant, il ne met pas en évidence l'icône dans la barre de menus comme le fait le projecteur lorsque vous cliquez dessus. –
- 1. Afficher le menu par programme dans WPF
- 2. Comment afficher ou masquer par programme l'icône d'enveloppe Outlook?
- 3. Définir par programme Windows Live Messenger Afficher l'image
- 4. Comment supprimer un raccourci annoncé par programme?
- 5. Comment définissez-vous un attribut par programme?
- 6. Comment arrêter un service Windows par programme?
- 7. Comment programmer un routeur par programme?
- 8. Comment donner un focus UITextView par programme?
- 9. Soumettre par programme un formulaire
- 10. Démarrer par programme UserControlTestContainer.exe
- 11. Soumettre un formulaire par programme
- 12. Comment exécuter NUnit par programme
- 13. Interrompre un économiseur d'écran actif par programme?
- 14. TWiki ajouter un nouveau sujet par programme
- 15. Ajouter par programme un SSIS ForEachLoop
- 16. Comment activer le programme Wake on LAN par programme
- 17. Comment ouvrir un fichier avec le programme associé par défaut
- 18. comment écrire dans un fichier texte par programme C
- 19. Comment fermer par programme un formulaire InfoPath en C#?
- 20. C# - Comment peupler un .net DataGridView par programme?
- 21. Comment puis-je limiter par programme l'accès à un Webservice?
- 22. Comment déplacer par programme des fichiers dans un répertoire WebDAV
- 23. Comment recycler par programme un processus dllhost.exe dans COM +?
- 24. Comment ajouter des éléments à un menu par programme?
- 25. Comment utiliser genshi.builder pour créer par programme un document HTML?
- 26. comment localiser un programme sur le bureau par C#
- 27. Comment insérer par programme une ligne dans un GridView?
- 28. Comment faire un défilement de la souris par programme?
- 29. Comment positionner par programme un objet dans Silverlight?
- 30. Comment faire pour "cliquer" par programme un Silverlight HyperlinkButton (WebAii)
Etes-vous sûr? Accessibility Inspector dit qu'il s'agit d'un menu AXMenu contenant AXMenuItems, et je ne suis pas sûr qu'ils voudraient le ré-implémenter. Les menus sont sacrément compliqués à travailler deux fois de la même manière. –
Je ne pense pas que ce que je fais est considéré comme un abus, je veux avoir exactement la même fonctionnalité que l'aide et les projecteurs. Je peux le faire sans utiliser nsmenu si c'est possible, je pensais qu'ils utilisaient nsmenu aussi. –