使用二维数组数据

时间:2016-02-01 23:14:41

标签: objective-c macos nsmutablearray nsoutlineview

这一直困扰着我一段时间,我真的需要知道,甚至可能。什么是正确的方法。

我有一个基于视图的NSOutlineView有两列,另一个类正在处理数据解析。数据解析类返回二维NSMutableArray。我想用第一列填充索引为foo[index][0]的数组的数据,第二列填充索引为foo[index][1]的数据

到目前为止,我只是设法让NSOutlineView在第一列显示正确的数据,我不知道如何使用我的数据填充第二列。 NSOutlineViewNSOutlineViewDataSource代码如下所示:

- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
    return foo.count; // works fine
} 

- (BOOL) outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
    return FALSE; 
}

- (id) outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
    return !item ? [[foo objectAtIndex:index] objectAtIndex:0] : 0;
}

    - (id) outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
                   if ([[tableColumn identifier] isEqualToString:@"column1"]) {
                return item; // Correct data
            }

                if ([[tableColumn identifier] isEqualToString:@"column2"]) {
               return // Here i want the data for column 2
            }
}

所以我猜需要的是委托- (id) outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {}需要以item已包含所有二维数据的方式构建?但是如何实现这一目标呢?当第二列需要填充时,是否有办法在item时返回数据?

[[foo objectAtIndex:index] objectAtIndex:1];

感谢任何帮助。

0 个答案:

没有答案