如何动态更新NSTreeController和NSOutlineView?

时间:2015-08-19 15:22:39

标签: objective-c macos cocoa nsoutlineview nstreecontroller

扩展outlineViewItem时 -

 (void) outlineViewItemDidExpand:(NSNotification *)notification

- ,我能够成功地向TreeController添加一个对象(日志语句在层次结构的正确位置显示新添加的对象),但是OutlineView / UI没有更新以反映该插入。

无济于事,我用过

  • [self.outlineView reloadItem:nil reloadChildren:YES]

  • [self.outlineView reloadData],甚至

  • [self.outlineView setHidden:YES]然后
    [self.outlineView setHidden:NO]

试图强制重新加载结构。

这一切都是在Objective-C中以编程方式完成的。

1 个答案:

答案 0 :(得分:4)

6小时后,我明白了。

我需要更新NSTreeController缓存,这是通过rearrangeObjects方法实现的。

所以我的问题的答案是:

[self.cloudDirectoryTreeController rearrangeObjects];