【问题标题】:NSOutlineView and selection index pathsNSOutlineView 和选择索引路径
【发布时间】:2015-05-05 01:07:57
【问题描述】:

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

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

如果您尝试绑定选择索引路径,并且没有将它们绑定到树控制器,则它根本不起作用。

大纲视图似乎并没有真正理解选择索引路径的概念。我该怎么办?

【问题讨论】:

    标签: cocoa selection nsoutlineview


    【解决方案1】:

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

    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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多