我的要求就是这样,
在NSOutlineview之上会有一个搜索文本字段,而NSOutline视图可能包含嵌套的组,
如果一个项目/行与搜索查询匹配,那么应该显示它,其所有父节点直到根级别,
我的方式如下,
1 - 根据用户输入的内容,重新构建NSOutlineview数据源(Nothing除了NSArray)
2 - 已实施所有委托方法,
现在我的问题是群组没有自动扩展,我知道我应该打电话
-expandItem:expandChildren:,
但是我的问题来自于我应该称之为的地方,我在重新加载数据后调用它但它无法正常工作
我试着把它称为这样的东西,,,,
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)aTableColumn byItem:(id)item {
if(aTableColumn == nil){
[self log:@"aTableColumn is NIL "];
return nil;
}
if([[aTableColumn identifier] isEqualToString:@"firstColumn"] ){
if ( [myOutlineView shouldExpandIt:item]){
[myOutineView expandItem:item];
}
return item;
}
return item;
}
但它的错误可能会发生递归循环
任何其他方式实现相同。
答案 0 :(得分:1)
感谢各位调查,
通过放置日志,我发现它似乎是[NSOutlineView reloadData]似乎是阻塞调用,
所以在那之后,如果我需要扩展/折叠组,我正在使用
[pCTOutlineView expandItem:pValue];
并且到目前为止工作....