Escribí una pequeña aplicación que vive en NSStatusBar. Quiero tener un atajo global que, cuando se pulsa, se muestre el contenido de la barra de menú, exactamente como el comportamiento de Spotlight. Agregué un atajo de tecla global a mi aplicación, pero no puedo mostrar la barra de meun. ¿Cómo puedo hacer esto? Intenté con "popUpContextMenu", pero ese método muestra el menú en la esquina inferior izquierda, quiero que el menú se abra justo debajo del icono del menú NSStatusBar.¿cómo se muestra un NSMenu programáticamente?
Respuesta
No creo que haya una forma admitida de hacerlo sin quizás utilizar el marco de Accesibilidad para simular un clic en su elemento de estado. De todos modos, probablemente no sea una buena idea abusar de un menú de esta manera.
El elemento de la barra de menú de Spotlight no usa un NSMenu, usa una ventana/vista personalizada. Puede considerar seguir esta ruta si tiene algún tipo de vista personalizada para mostrar.
Puede hacerlo, apple proporciona un método para "popUpStatusItemMenu"
http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSStatusItem_Class/Reference/Reference.html#//apple_ref/occ/instm/NSStatusItem/popUpStatusItemMenu: –
Un problema que encontré sin embargo, es que no resalta el ícono en la barra de menú como lo hace el foco al hacer clic en él. –
- 1. Ocultar NSMenu programáticamente de NSStatusItem
- 2. Cómo tener un NSMenu con acciones dinámicas
- 3. NSButton con retraso NSMenu - Objective-C/Cocoa
- 4. Muestra programáticamente una vista desde un complemento de Eclipse
- 5. ¿Cómo compruebo programáticamente si el menú de mi actividad se muestra en un momento determinado?
- 6. ¿Cómo se puede relanzar un Finder programáticamente?
- 7. Código de muestra para crear pdf programáticamente
- 8. ¿Cómo se muestra NSAttributedString en un iPhone?
- 9. ¿Cómo puedo mostrar NSMenu en el cursor del mouse?
- 10. Elementos de menú alternativos en NSMenu
- 11. Botón del mouse presionado NSMenu en 10.5
- 12. botón Divulgación muestra un menú
- 13. Muestra programáticamente información sobre herramientas en la aplicación winforms
- 14. Muestra programáticamente el teclado en la aplicación para iPhone
- 15. Python: ¿Cómo se muestra un temporizador en un terminal?
- 16. Crear NSMenuItems programáticamente en MonoMac
- 17. ¿Cómo se pueden agregar elementos adicionales a NSMenu en Interface Builder?
- 18. ¿Cómo crear un UIScrollView programáticamente?
- 19. Modificar la estructura de NSMenu en cada apertura?
- 20. Cómo dibujar un triángulo programáticamente
- 21. ¿Cómo configura programáticamente un atributo?
- 22. ¿Cómo editas un .png programáticamente?
- 23. ¿Cómo creo un UIViewController programáticamente?
- 24. ¿Cómo aplico un estilo programáticamente?
- 25. ¿Cómo se usa programáticamente JdbcTemplate de Spring?
- 26. Reemplazar un fragmento programáticamente
- 27. ¿Cómo saber si un formulario se muestra como diálogo
- 28. ¿Cómo saber si se muestra un elemento DOM?
- 29. ¿Cómo se muestra un hipervínculo en Inno Setup?
- 30. ¿Cómo se muestra una vista de calendario en un AlertDialog?
¿Estás seguro? El inspector de accesibilidad dice que es un AXMenu con AXMenuItems, y no estoy seguro de que quieran volver a implementarlo. Los menús son tremendamente difíciles de hacer funcionar de la misma manera dos veces. –
No creo que lo que estoy haciendo se considere abuso, quiero tener exactamente la misma funcionalidad que la ayuda y el centro de atención. Puedo hacerlo sin usar nsmenu si es posible, pensé que estaban usando nsmenu también. –