Cocoa 如何创建一个iTunes风格的源列表来过滤主表视图?

Cocoa 如何创建一个iTunes风格的源列表来过滤主表视图?,cocoa,nstableview,nspredicate,Cocoa,Nstableview,Nspredicate,我读过一些关于如何模仿iTunes源代码列表风格的文章。但我似乎不知道需要做什么才能让它们在主表视图中实际显示其他内容 我的设置是这样的:我在后台有核心数据,包含来自iTunes的所有曲目和一个有3个状态的“状态”字符串。我只想在选择源列表中的项目时显示部分标题。源列表项与轨迹的状态匹配。 换句话说:3个源列表项表示一个数据集中的3个不同组。使用此状态变量区分组 我尝试创建一个NSString和NSPredicate数组,并将所选项绑定到主表视图筛选谓词。但它没有起作用 非常感谢您的回复 编辑:

我读过一些关于如何模仿iTunes源代码列表风格的文章。但我似乎不知道需要做什么才能让它们在主表视图中实际显示其他内容

我的设置是这样的:我在后台有核心数据,包含来自iTunes的所有曲目和一个有3个状态的“状态”字符串。我只想在选择源列表中的项目时显示部分标题。源列表项与轨迹的状态匹配。 换句话说:3个源列表项表示一个数据集中的3个不同组。使用此状态变量区分组

我尝试创建一个NSString和NSPredicate数组,并将所选项绑定到主表视图筛选谓词。但它没有起作用

非常感谢您的回复

编辑:现在可以从数组中设置筛选器谓词。但这对筛选表的NSSearch字段不起作用。是否有其他方法或我可以轻松组合这两个谓词?

您可以通过“或”或“或”和“将它们组合在一起”来“组合”两个谓词。换句话说,假设你有两个谓词:

NSPredicate *one = [NSPredicate predicateWithFormat:@"foo = 42"];
NSPredicate *two = [NSPredicate predicateWithFormat:@"bar = 'abc'"];
你可以做:

NSArray *subpredicates = [NSArray arraWithObjects:one, two, nil];
NSPredicate *both = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
//this is equivalent to: foo = 42 AND bar = 'abc'

NSPredicate *both = [NSCompoundPredicate orPredicateWithSubpredicates:subpredicates];
//this is equivalent to: foo = 42 OR bar = 'abc'