cocoa - NSOutlineView: expande automáticamente todos los nodos
(2)
Tengo un NSOutlineView
vinculado a un NSTreeController
(si eso hace la diferencia), y me gustaría expandir cada nodo en mi -awakeFromNib()
.
También me gustaría seleccionar programáticamente el primer hijo del primer nodo al mismo tiempo. Este tipo de cosas son simples con vistas de tabla, pero los contornos no están cooperando conmigo en absoluto.
Gracias,
Rico
Me gustaría expandir todos los nodos en mi -awakeFromNib ().
A partir de Mac OS X 10.5, [outlineView expandItem:nil expandChildren:YES]
.
En versiones anteriores de Mac OS X, necesitará iterar de 0 a la cantidad de filas, obtener el elemento para cada fila usando [outlineView itemAtRow:row]
, y almacenar esos elementos en una matriz, luego iterar la matriz y pasar cada elemento al expandItem:expandChildren:
method. (No puede mezclar los dos bucles porque expandir un elemento y todos sus descendientes cambiarán los índices de fila de sus hermanos siguientes, por lo tanto, primero debe recopilar todos los elementos de nivel superior y luego expandirlos una vez que los tenga todos. )
También me gustaría seleccionar programáticamente el primer hijo del primer nodo al mismo tiempo.
Inmediatamente después de lo anterior, será la fila 1.
Una vista de esquema es un tipo de vista de tabla, por lo que usará uno de los métodos de NSTableView: [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]
.
Si está cargando desde un origen de datos,
dispatch_async(dispatch_get_main_queue(), ^{
[self.outlineView expandItem:root expandChildren:YES];
});