我正在开发一款使用核心数据的Mac应用。我正在使用NSOutlineView和NSTreeController来绑定视图上的数据。
您可以将我的数据结构假设为
我将fetchPredicate应用于我的NSTreeController以成功过滤数据。另一方面,fetchPredicate仅应用于数据的第一级(对于父项)。
我需要一个方法,我也可以将fetchPredicate应用于子项。例如,如果我的条件与子项1和子项4匹配,则结果应为
任何帮助将不胜感激。
答案 0 :(得分:0)
您正在应用提取谓词。 NSTreeController不支持过滤谓词。 NSTreeController使用fetch谓词来获取顶级对象,并使用子关系来获取子级。未获取子项,并且不使用获取谓词来获取子项。
解决方案1:实施计算的属性filteredChildren
,就像这个问题:Filtering A Tree Controller并在此无关答案中提及:Is it possible to bind an NSTreeController to an NSOutlineViewDataSource?
解决方案2:使用数据源而不是绑定,也在上面的答案中提到。