这一直困扰着我一段时间,我真的需要知道,甚至可能。什么是正确的方法。
我有一个基于视图的NSOutlineView
有两列,另一个类正在处理数据解析。数据解析类返回二维NSMutableArray
。我想用第一列填充索引为foo[index][0]
的数组的数据,第二列填充索引为foo[index][1]
的数据
到目前为止,我只是设法让NSOutlineView在第一列显示正确的数据,我不知道如何使用我的数据填充第二列。 NSOutlineView
和NSOutlineViewDataSource
代码如下所示:
- (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];
感谢任何帮助。