如何使用NSOutlineController从NSTreeController中删除所有元素

时间:2011-02-04 17:01:07

标签: cocoa binding nsarraycontroller nstreecontroller removeall

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

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

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

但似乎没有效果。

我认为使用NSTreeController绑定NSArrayController会有所帮助,但我真的不知道要绑定的步骤 - NSArrayController - NSTreeController - NSOutlineController

2 个答案:

答案 0 :(得分:2)

我一直使用未绑定的列表。

简单清除列表:

[treeController setContent:nil];

答案 1 :(得分:0)

摘自Sub offset() Dim w1 As Worksheet, w2 As Worksheet Dim c As Range, FR As Long Application.ScreenUpdating = False Set w1 = Worksheets("Sheet1") Set w2 = Worksheets("Sheet2") lrow = w1.Range("D" & Rows.Count).End(xlUp).Row For Each c In w1.Range("D2:D" & lrow) FR = 0 On Error Resume Next FR = Application.Match(c, w2.Columns("A"), xlPrevious) On Error GoTo 0 If FR <> 0 Then w2.Range("C" & FR).Value = w1.Range(c.address).value Next c Application.ScreenUpdating = True End Sub 属性的文档:

  

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

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

NSMutableArray

将是适当的。将其设置为[treeController.content removeAllObjects]; 会删除基础容器。如果您的内容是单个对象,那么

nil

是正确的选择。