我有一个NSSearchField
绑定到一个NSDictionaryController
。在我的搜索字段的谓词格式,我有这样的代码key contains $value
和它的意思是什么?谓词格式(代码行数)还有哪些其他替代方案?谢谢!
快速搜索文档可以找到谓词编程指南中的这一章:
变量用
$
表示(例如$VARIABLE_NAME
)。
我没有看到任何地方明确提到它,但其含义是标识符不是前缀的$
被视为键-即。,通过键值编码检索。谓词将匹配字典控制器中值为key
…
CONTAINS
- 左边的表达式包含右边的表达式
…包含 $value
的值。
那么$value
是什么呢?Cocoa绑定参考解释:
多值谓词绑定允许您创建一个搜索字段弹出菜单,该菜单预先填充了与谓词过滤器对应的菜单项。每个谓词绑定对应于搜索字段弹出菜单中的一个条目。这个多值绑定被NSSearchField谓词绑定使用。
显示名称字符串用作菜单项标题。谓词格式是一个字符串,它使用谓词编程指南中描述的谓词格式为该菜单项指定谓词。任何在谓词格式字符串中出现的字符串
$value
将被替换为搜索字段的内容。
换句话说,NSSearchField为它的谓词预定义了变量value
,作为保存当前字段中的任何文本的变量。,用户正在搜索的文本。
因此,例如,如果您创建了一个格式为name contains $value
的谓词,并且用户搜索"Emily",那么该谓词将匹配name
包含(作为子字符串)字符串"Emily"的那些对象。
key
表示字典的Key, $value
表示NSSearchField
中输入的值。
如果要搜索更多字段,可以使用||和&&
我发现了!对于谓词格式,我只需要输入
value contains $value
让它工作。现在我明白了!谢谢大家的帮助!!
foreach (var item in dictionary) {
cellValue.Text = item.Value.ToString();
}