【问题标题】:How to remove all elements from NSTreeController with NSOutlineController如何使用 NSOutlineController 从 NSTreeController 中删除所有元素
【发布时间】:2011-06-21 12:06:13
【问题描述】:

我正在使用 NSTreeControllerNSOutlineController 来显示 1parent-1child 层次结构中的内容。 我的结构是这样的:
- 家长
- 孩子
- 家长
- 孩子

现在当用户按下刷新按钮时,我想删除所有节点并重新填充。

[[treeController arrangedObjects] removeAllItems];
[[treeController arrangedObjects] removeAllObjects];

但似乎没有任何效果。

我想用NSArrayController 绑定NSTreeController 应该会有所帮助,但我真的不知道绑定-NSArrayController-NSTreeController-NSOutlineController 的步骤。

【问题讨论】:

    标签: cocoa binding nsarraycontroller nstreecontroller removeall


    【解决方案1】:

    我总是用未绑定的列表来做这件事。

    清单简单:

    [treeController setContent:nil];

    【讨论】:

    • 我发现这使得稍后无法将对象添加到控制器中......
    【解决方案2】:

    来自content 属性的文档:

    此属性的值可以是对象数组或单个根对象。默认值为 nil。

    如果你的内容是一个数组(大概是NSMutableArray),那么

    [treeController.content removeAllObjects];
    

    是合适的。将其设置为 nil 会删除底层容器。如果你的内容是单个对象,那么

    treeController.content = nil;
    

    是正确的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2013-04-06
      • 2012-09-01
      • 1970-01-01
      相关资源
      最近更新 更多