Estoy buscando un método llamado addNewItem:(NSToolbarItem *)item
o algo así que me permite agregar un elemento creado mediante programación a mi barra de herramientas, pero no he encontrado ninguno. Me gustaría agregar un elemento que muestre un popover cuando el usuario hace clic en él, como en Safari cuando el usuario descarga algo.¿Cómo agregar programáticamente NSToolbarItem nuevo a la barra de herramientas existente?
Respuesta
Debe tener una clase que se ajuste al protocolo NSToolbarDelegate
y tener una instancia de esa clase como delegado de su barra de herramientas. Este delegado implementaría, por ejemplo, -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
, que devuelve una instancia NSToolbarItem
para un identificador dado, creando potencialmente ese elemento bajo demanda. Al hacer esto, está preparando a su delegado para devolver un elemento de barra de herramientas cuando la barra de herramientas le pide el elemento correspondiente a un identificador.
Hecho esto, puede agregar programáticamente un nuevo elemento de la barra de herramientas a la barra de herramientas enviando -[NSToolbar insertItemWithItemIdentifier:atIndex]
a la instancia de la barra de herramientas. El argumento de cadena de identificador debe coincidir con el utilizado en el párrafo anterior. Si necesita eliminar un artículo, envíe -[NSToolbar removeItemAtIndex:]
a la barra de herramientas.
Esto se describe con ejemplos en la sección Adding and Removing Toolbar Items del documento Toolbar Programming Topics for Cocoa.
- 1. Agregar una vista personalizada a la barra de herramientas
- 2. Agregar barra de herramientas a UITableViewController
- 3. ¿Agregar botones a la barra de herramientas del Finder?
- 4. Agregar botón a la barra de herramientas superior jqGrid
- 5. Visual Studio 2010: Agregar comandos a la barra de herramientas
- 6. Agregar un nuevo proyecto a una solución existente en TFS
- 7. ¿Cómo agrego botones a la barra de herramientas de Eclipse?
- 8. Problema al agregar UIBarButtonItems a una barra de herramientas
- 9. ¿Agregar/re-agregar botones a la barra de herramientas en eclipse?
- 10. ¿Cómo agregar altura a la altura existente?
- 11. Cómo agregar un nuevo módulo maven al proyecto maven existente
- 12. Agregar href a un botón en la barra de herramientas btn y mantener la alineación
- 13. Cómo agregar el botón "Cambios pendientes" a la barra de herramientas en VS 2010
- 14. ¿Cómo puedo agregar un QComboBox a la barra de herramientas principal en Qt Creator?
- 15. cómo habilitar/deshabilitar NSToolbarItem
- 16. Agregar filas a la sección UITableView existente
- 17. Magento agregar barra de herramientas de buscapersonas a la lista de deseos
- 18. Agregar barra de desplazamiento a la tabla
- 19. Agregar UINavigationController a UIViewController existente
- 20. Eclipse + Git - ¿Cómo obtener barra de herramientas?
- 21. Agregar imagen a la barra de navegación
- 22. Mostrar NSPopover desde el botón NSToolbarItem
- 23. Cómo agregar un proyecto existente a Geany
- 24. Agregar un nuevo nodo al objeto XmlDocument existente
- 25. ¿Cómo agregar AUTO_INCREMENT a una columna existente?
- 26. ¿Cuál es la forma correcta de agregar una barra de herramientas a una UITableView?
- 27. ¿Cómo activar/desactivar los elementos de la barra de herramientas?
- 28. ¿Cómo agregar una barra de herramientas a una actividad de Android?
- 29. Agregar un DataSet existente a Report .rdlc
- 30. Cómo agregar información sobre herramientas a jqgrid
¿por qué tan complicado, Apple? – Lukas
@Lukas porque cuando se diseñó NSToolbar, se necesitaron técnicas como esta para reducir el consumo de RAM. Este era un patrón estándar y cómo todo en Cocoa solía funcionar. Solo las cosas nuevas no funcionan así. –