Frage

Ich habe eine NSOutlineView an einen NSTreeController gebunden bekam (wenn das einen Unterschied macht), und ich möchte jeden Knoten in meinem -awakeFromNib() erweitern.

Ich mag auch programmatisch das erste Kind des ersten Knotens gleichzeitig wählen. Diese Art von Dingen sind einfach mit Tabellenansichten, aber Konturen zusammen nicht mit mir überhaupt nicht.

Danke,

Reich

War es hilfreich?

Lösung

  

Ich möchte jeden Knoten in meinem -awakeFromNib erweitern ().

Ab Mac OS X 10.5, [outlineView expandItem:nil expandChildren:YES].

In früheren Versionen von Mac OS X, müssen Sie von 0 auf die Anzahl der Zeilen zu durchlaufen, immer das Element für jede Zeile [outlineView itemAtRow:row] verwenden, und diese Elemente in ein Array zu speichern, dann das Array durchlaufen und jedes Element übergeben Verfahren zum expandItem:expandChildren:. (Sie können die zwei Schleifen nicht mischen, da ein Element erweitert und alle seine Nachkommen werden die Zeilenindizes der nachfolgenden Geschwister ändern, daher müssen Sie sammeln alle Top-Level-Elemente zuerst, dann sie erweitern, wenn Sie alle von ihnen haben. )

  

Ich würde auch programmatisch gerne das erste Kind des ersten Knotens gleichzeitig wählen.

Unmittelbar nach der oben, wird es Zeile 1 sein.

Eine Gliederungsansicht ist eine Art Tabellenansicht, so dass Sie einen von NSTableView Methoden verwenden:. [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]

Andere Tipps

Wenn Sie von einer Datenquelle geladen werden,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top