NSOutlineView の可視行のインデックスを取得するにはどうすればよいですか? どのレベルとどの行が表示されているかを知る必要があります。
[編集] 私が実際に探しているのは、CocoaTouch/UITableView に相当する NSOutlineView です - (NSArray *)indexPathsForVisibleRows
NSOutlineView の可視行のインデックスを取得するにはどうすればよいですか? どのレベルとどの行が表示されているかを知る必要があります。
[編集] 私が実際に探しているのは、CocoaTouch/UITableView に相当する NSOutlineView です - (NSArray *)indexPathsForVisibleRows
次のことができます。
NSScrollView* scrollView = [self.tableView enclosingScrollView];
CGRect visibleRect = scrollView.contentView.visibleRect;
NSRange range = [self.tableView rowsInRect:visibleRect];
範囲では、最初に表示されるセルとして位置を取得し、長さではセルの量が表示されるため、表示されるセルのインデックスを知ることができます。
NSOutlineView
NSTableView
サブクラスです。したがって、 (from )-rowsInRect:
と組み合わせることができます。レベルを決定するために使用します。-visibleRect
NSView
-levelForRow:
データソースを変更して、outlineView:child:ofItem:のNSIndexPathを返しました。このようにして、[outlineview rowAtPoint:point](および同様のもの)を使用してNSIndexPathを取得できます。
この変更により、これらのindexPathのセットを作成して、必要がなくなるまでリリースされないようにする必要がありました。また、通常はモデルオブジェクトを予期していた他のすべてのコードは、インデックスパスからモデルオブジェクトを検索する必要があります。私の場合、これは効率的でした。