gpt4 book ai didi

swift - 使用 NSTreeController 过滤 NSOutlineView 的子级

转载 作者:行者123 更新时间:2023-11-30 13:22:01 25 4
gpt4 key购买 nike

我正在开发一个使用 Core 数据的 Mac 应用程序。我正在使用 NSOutlineView 和 NSTreeController 在 View 上绑定(bind)数据。

您可以假设我的数据结构为

  • 父项目 1
    • 子项目 1
    • 子项目 2
    • 子项目 3
  • 父项目 2
    • 子项目 4
    • 子项目 5

我正在将 fetchPredicate 应用于我的 NSTreeController 以成功过滤数据。另一方面,fetchPredicate 仅应用于数据的第一级(父项)。

我需要一种方法,可以将 fetchPredicate 也应用于子项。例如,如果我的条件与子项 1 和子项 4 匹配,则结果应为

  • 父项目 1
    • 子项目 1
  • 父项目 2
    • 子项目 4

任何帮助将不胜感激。

最佳答案

您正在应用获取谓词。 NSTreeController 不支持过滤谓词。 NSTreeController 使用 fetch 谓词来获取顶级对象,并使用子关系来获取子对象。不会获取子级,并且不会使用获取谓词来获取子级。

解决方案 1:实现计算属性 filteredChildren,如本问题所示:Filtering A Tree Controller并在这个不相关的答案中提到:Is it possible to bind an NSTreeController to an NSOutlineViewDataSource?

解决方案 2:使用数据源而不是绑定(bind),上面的答案中也提到了。

关于swift - 使用 NSTreeController 过滤 NSOutlineView 的子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37675719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com