当使用基于视图的NSOutlineView(源列表)使用绑定时,是否可以根据某些条件不显示数据源中的行?

时间:2012-07-16 13:26:44

标签: objective-c macos cocoa interface-builder cocoa-bindings

例如,下图显示了使用NSTreeController基于文件夹和项目绑定到树结构的NSOutlineView:

enter image description here

我想要的是Item对象保留在模型中,但不能显示为行,即:

enter image description here

NSOutlineView委托协议有一个方法,通知代表即将显示某个项目,但不提供不显示该项目的选项。

是否有某种方法可以将NSOutlineView子类化为实现此(或其他一些方法)?

感谢。

1 个答案:

答案 0 :(得分:1)

据推测,您正在使用NSTreeController根据用于识别孩子的关键路径来组织模型对象。

如果要从视图中过滤掉任何内容,您只需要实现子键路径方法,只返回要显示的子项。 (如果您需要继续跟踪模型中的“真实”孩子,这可能意味着需要一些额外的簿记才能返回单独的子项列表以供显示。)