NSOutlineView - 自動展開するすべてのノード
-
21-08-2019 - |
質問
私は(それが違いを作る場合)NSOutlineView
にバインドNSTreeController
を持っている、と私は私の-awakeFromNib()
内のすべてのノードを展開したいと思います。
私はまた、プログラム的に同時に最初のノードの最初の子を選択したいと思います。物事のこれらの種類は、テーブルビューとシンプルですが、輪郭はまったく私と一緒に協力していません。
おかげで、
リッチ
解決
私は)(私の-awakeFromNib内のすべてのノードを展開したいと思います。
のMac OS X 10.5のよう、[outlineView expandItem:nil expandChildren:YES]
ます。
の配列を反復し、各項目を渡し、その後、マックOS Xの以前のバージョンでは、[outlineView itemAtRow:row]
を使用して行ごとにアイテムを取得する行の数を0から反復する必要があります、そして配列にそれらのアイテムを格納しますexpandItem:expandChildren:
方法に関するものです。アイテムを拡大し、そのすべての子孫が、その後の兄弟の行インデックスが変更されますので、(次の2つのループを混在させることはできませんので、最初にすべてのトップレベルのアイテムを収集する必要があり、あなたがそれらのすべてを持っていたら、それらを展開します。 )
私はまた、プログラム的に同時に最初のノードの最初の子を選択したいと思います。
直上後、それは行1になるだろう。
あなたはNSTableViewの方法のいずれかを使用しますので、アウトライン・ビューは、テーブルビューの一種です。[outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]
を
他のヒント
あなたがデータソースからロードしている場合は、
dispatch_async(dispatch_get_main_queue(), ^{
[self.outlineView expandItem:root expandChildren:YES];
});