扩展从数据源加载数据的NSOutlineView的所有项目

mat*_*tei 5 macos cocoa nsoutlineview

首先,我是可可开发的新手,所以我想我可能试图以错误的方式做到这一点,但是这里有:

我有一个NSOutlineViewNSOutlineViewDataSource实现加载数据.我希望所有项目在加载后都要展开,但我似乎无法在数据加载完成后找到一个事件,所以我可以发送一个[outlineView expandItem: nil expandChildren: YES].

我查看了NSOutlineViewDelegate协议,但我找不到适合这个电话的地方.这个问题的最佳方法是什么?

Mer*_*ede 8

通常我喜欢在表单中执行类似的操作 - awakeFromNib或任何其他启动回调

dispatch_async(dispatch_get_main_queue(), ^{
    [self.outlineView expandItem:root expandChildren:YES];
});
Run Code Online (Sandbox Code Playgroud)

这将在runloop中的当前循环结束时将执行块排入队列,因此,它将在所有初始化发生后执行.没有必要设置任何人工延迟.