0

我的要求是这样的,

在 NSOutlineview 之上会有一个搜索文本字段,并且 NSOutline 视图可能包含嵌套组,

如果一个项目/行与搜索查询匹配,那么它应该被显示,它的所有父节点直到根级别,

我正在做的方式如下,

1 - 根据用户输入的内容,重新构建 NSOutlineview 数据源(不过是 NSArray)

2 -- 已实现所有委托方法,

现在我的问题是 Group 没有自动扩展,我知道我应该打电话

-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;
}

但它的错误可能是递归循环

任何其他方式来达到同样的效果。

4

1 回答 1

1

感谢大家对此进行调查,

通过放置日志,我发现 [NSOutlineView reloadData] 似乎正在阻塞调用,

所以在那之后,如果我需要展开/折叠组,我正在使用

  [pCTOutlineView expandItem:pValue];

和工作至今....

于 2013-08-14T06:34:28.540 回答