Cocoa NSOutlineView和选择索引路径

Cocoa NSOutlineView和选择索引路径,cocoa,selection,nsoutlineview,Cocoa,Selection,Nsoutlineview,我想获取/设置NSOutlineView的选择索引路径。我该怎么做 没有明显的方法可以获取/设置选择索引路径 如果您尝试绑定选择索引路径,但未将其绑定到树控制器,则根本不起作用 outline视图似乎并不真正理解选择索引路径的概念。我应该怎么做?使用以下代码保存选择状态而不进行绑定: NSIndexSet* theSelectedRows = [self.tableView selectedRowIndexes]; NSMutableArray* selectedItems = [[NSMuta

我想获取/设置
NSOutlineView
的选择索引路径。我该怎么做

没有明显的方法可以获取/设置选择索引路径

如果您尝试绑定选择索引路径,但未将其绑定到树控制器,则根本不起作用


outline视图似乎并不真正理解选择索引路径的概念。我应该怎么做?

使用以下代码保存选择状态而不进行绑定:

NSIndexSet* theSelectedRows = [self.tableView selectedRowIndexes];
NSMutableArray* selectedItems = [[NSMutableArray alloc] init];

[theSelectedRows enumerateIndexesUsingBlock:^(NSUInteger i, BOOL *stop) {
    [selectedItems addObject:[self.tableView itemAtRow:i]];
    // or add some other identifier specific to your data model
}];
要在视图的选择更改时收到通知,请为NSOutlineView设置一个代理,并在该代理中实现:

- (void)outlineViewSelectionDidChange: (NSNotification *)notification

不需要。我需要选择索引路径,而不是所选行索引。您没有使用NSTreeController,因此“选择索引路径”需要是基于自定义数据模型的自定义解决方案。您的模型必须包含对父节点的引用,是吗?您可以使用上面的答案(顺便说一句,它不是存储行索引)来存储指向根的对象的NSArray。