29

へのNSOutlineViewバインドがありNSTreeController(それが違いを生む場合)、 のすべてのノードを展開したいと思います-awakeFromNib()

また、最初のノードの最初の子を同時にプログラムで選択したいと思います。このようなことは、テーブル ビューでは簡単ですが、アウトラインはまったく協力的ではありません。

ありがとう、

リッチ

4

2 に答える 2

70

-awakeFromNib() ですべてのノードを展開したいと思います。

Mac OS X 10.5 以降、[outlineView expandItem:nil expandChildren:YES].

以前のバージョンの Mac OS X では、0 から行数まで反復し、 を使用して各行の項目を取得し、[outlineView itemAtRow:row]それらの項目を配列に格納してから、配列を反復して各項目をexpandItem:expandChildren:メソッドに渡す必要がありました。(項目とそのすべての子孫を展開すると、後続の兄弟の行インデックスが変更されるため、2 つのループを混在させることはできません。したがって、最初にすべてのトップレベルの項目を収集し、それらをすべて取得したら展開する必要があります。 )

また、最初のノードの最初の子を同時にプログラムで選択したいと思います。

上記の直後、1行目になります。

アウトライン ビューはテーブル ビューの一種であるため、NSTableView のメソッドの 1 つを使用します[outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]

于 2009-02-06T10:16:13.750 に答える
-1

データソースからロードしている場合、

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
于 2014-10-23T16:45:51.237 に答える