从用户的角度使用 predicateEditor 定义子谓词的最佳方式

Best way to define subpredicates with predicateEditor from users' perspective

我想知道如何使用 NSPredicateEditor 从用户的角度定义子谓词 - 以及如何实现它。

假设我们在 IB 中创建了一个简单的 NSPredicateEditor,如下所示。

它有 2 项可供选择:

所以我们可以创建一个像

这样的谓词
lastname ==[c] "Smith" OR lastname ==[c] "Miller" OR address.street ==[c] "3rd Avenue"

现在,如果我只想选择米勒,住在第三大道,我该怎么办?我希望有一个像 "s" 这样的按钮来在所选行 (Miller) 的正下方创建一个子谓词以获得此结果:

  lastname ==[c] "Smith" OR (lastname ==[c] "Miller" AND address.street ==[c] "3rd Avenue")

遗憾的是,对于每个项目(行),除了 + 或 - 之外没有其他按钮。 还有其他办法吗?可以通过低编程工作来完成吗?

将谓词编辑器的 "Nesting" 设置为 "Compound"。在运行时:按 Option 键,+ 按钮将变为 ... 用于添加复合行。