使用 NSTreeController 过滤 NSOutlineView 的子项
Filtering children of NSOutlineView with NSTreeController
我正在开发一个使用核心数据的 Mac 应用程序。我正在使用 NSOutlineView 和 NSTreeController 在视图上绑定数据。
您可以假设我的数据结构为
- 父项 1
- 子项 1
- 子项 2
- 子项目 3
- 父项 2
- 子项目 4
- 子项目 5
我正在将 fetchPredicate 应用到我的 NSTreeController 以成功过滤数据。另一方面,fetchPredicate 仅应用于数据的第一层(父项)。
我需要一种可以将 fetchPredicate 也应用于子项的方法。例如,如果我的条件与子项 1 和子项 4 匹配,则结果应为
- 父项 1
- 子项目 1
- 父项 2
- 子项目 4
任何帮助将不胜感激。
您正在应用获取谓词。 NSTreeController 不支持过滤谓词。 NSTreeController 使用获取谓词获取顶级对象并使用子关系获取子对象。未获取子项并且未使用获取谓词获取子项。
解决方案 1:实施计算 属性 filteredChildren
,如本题:Filtering A Tree Controller and mentioned in this unrelated answer: Is it possible to bind an NSTreeController to an NSOutlineViewDataSource?
解决方案2:使用数据源而不是绑定,上面的答案中也提到了。
我正在开发一个使用核心数据的 Mac 应用程序。我正在使用 NSOutlineView 和 NSTreeController 在视图上绑定数据。
您可以假设我的数据结构为
- 父项 1
- 子项 1
- 子项 2
- 子项目 3
- 父项 2
- 子项目 4
- 子项目 5
我正在将 fetchPredicate 应用到我的 NSTreeController 以成功过滤数据。另一方面,fetchPredicate 仅应用于数据的第一层(父项)。
我需要一种可以将 fetchPredicate 也应用于子项的方法。例如,如果我的条件与子项 1 和子项 4 匹配,则结果应为
- 父项 1
- 子项目 1
- 父项 2
- 子项目 4
任何帮助将不胜感激。
您正在应用获取谓词。 NSTreeController 不支持过滤谓词。 NSTreeController 使用获取谓词获取顶级对象并使用子关系获取子对象。未获取子项并且未使用获取谓词获取子项。
解决方案 1:实施计算 属性 filteredChildren
,如本题:Filtering A Tree Controller and mentioned in this unrelated answer: Is it possible to bind an NSTreeController to an NSOutlineViewDataSource?
解决方案2:使用数据源而不是绑定,上面的答案中也提到了。