如何动态更新 NSTreeController 和 NSOutlineView?

Rya*_*uza 0 macos cocoa objective-c nsoutlineview nstreecontroller

当一个 outlineViewItem 展开时 -

 (void) outlineViewItemDidExpand:(NSNotification *)notification
Run Code Online (Sandbox Code Playgroud)

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

没用,我用过

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

  • [self.outlineView reloadData], 乃至

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

尝试强制重新加载结构。

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

Rya*_*uza 5

6小时后,我收到了。

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

所以我的问题的答案是:

[self.cloudDirectoryTreeController rearrangeObjects];
Run Code Online (Sandbox Code Playgroud)