我有一个 NSOutlineView,我想用 NSURL 对象列表填充它。我在 NSTableView 中有这个工作。作为转向 NSOutlineView 的第一步(这样我可以根据用户的需要按各种标准对 NSURL 对象进行分组),我以一种应该模仿表格视图的方式实现了 NSOutlineViewDataSource 协议的最小方法:
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
if(!item) return [[self.resultsArrayController arrangedObjects] count];
return 0;
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
if(!item){
return [[self.resultsArrayController arrangedObjects] objectAtIndex:index];
}
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
return [item valueForKey:[tableColumn identifier]];
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
return NO;
}
这不断抛出一个无法识别的选择器异常,显示[NSURL indexPath]
正在被调用。任何人都知道为什么要调用此方法或如何解决它?