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

Objective c 使用绑定使用基于视图的NSOutlineView(源列表)时,是否可能基于某些条件不显示数据源中的行?,objective-c,macos,cocoa,interface-builder,cocoa-bindings,Objective C,Macos,Cocoa,Interface Builder,Cocoa Bindings,例如,下图显示了使用NSTreeController绑定到基于文件夹和项目的树结构的NSOutlineView: 我希望项目对象保留在模型中,但不显示为行,即: NSOutlineView委托协议有一种方法,用于通知委托某个项目即将显示,但不提供不显示该项目的选项 是否有办法将NSOutlineView子类化以实现此方法(或其他方法) 谢谢。您可能正在使用NSTreeController,它根据模型对象用于标识其子对象的关键路径来组织模型对象 如果要从视图中筛选任何内容,则只需实现子键路径方

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

我希望项目对象保留在模型中,但不显示为行,即:

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

是否有办法将NSOutlineView子类化以实现此方法(或其他方法)


谢谢。

您可能正在使用
NSTreeController
,它根据模型对象用于标识其子对象的关键路径来组织模型对象


如果要从视图中筛选任何内容,则只需实现子键路径方法以仅返回要显示的子项。(如果您需要继续跟踪模型中的“真实”子项,这可能意味着需要额外记账,以便能够返回单独的子项列表以供显示。)

是的,这基本上就是我最后所做的。。。我的模型有两个数组:childrenToDisplay和childrenToDisplay,然后由不同的树控制器使用。虽然我并不喜欢这个解决方案,但在我看来,它似乎打破了MVC模式——它本质上是在存储视图应该在模型中显示的信息!