Pregunta

Tengo una NSOutlineView unido a un NSTreeController (si eso hace la diferencia), y me gustaría expandir todos los nodos en mi -awakeFromNib().

También me gustaría seleccionar mediante programación el primer hijo del primer nodo al mismo tiempo. Este tipo de cosas son simples, con vistas de tabla, pero contornos no están cooperando conmigo en absoluto.

Gracias,

Rich

¿Fue útil?

Solución

  

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, que tendrá que recorrer desde 0 hasta el número de filas, conseguir el artículo para cada fila utilizando [outlineView itemAtRow:row], y el almacenamiento de los elementos en una matriz, a continuación, iterar la matriz y pasar cada elemento con el método expandItem:expandChildren:. (No se pueden mezclar los dos bucles debido a la expansión de un elemento y todos sus descendientes van a cambiar los índices de filas de sus hermanos posteriores, por lo tanto, debe recoger todos los elementos de nivel superior en primer lugar, a continuación, expanda ellos una vez que tenga todos ellos. )

  

También me gustaría seleccionar mediante programación el primer hijo del primer nodo al mismo tiempo.

Inmediatamente después de lo anterior, será la fila 1.

Una vista de esquema es una especie de vista de la tabla, por lo que vamos a usar uno de los métodos de NSTableView:. [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]

Otros consejos

Si va a cargar desde una fuente de datos,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top