“密钥包含$ value”是什么意思?

时间:2013-03-10 11:22:42

标签: cocoa cocoa-bindings nssearchfield

我有NSSearchField绑定到NSDictionaryController。在我的搜索字段的谓词格式中,我有一个像key contains $value这样的代码,它是什么意思?谓词格式(代码行)还有哪些其他选择?谢谢!

4 个答案:

答案 0 :(得分:3)

快速search of the docs出现this chapter in the Predicate Programming Guide

  

变量用$表示(例如$VARIABLE_NAME)。

我没有看到它明确提到的任何地方,但暗示是{em>不前缀为$的标识符被视为键 - 即,检索由Key-Value Coding。谓词将匹配value for key ...

的字典控制器中的那些对象
  
  
CONTAINS
  
左手表达式包含右手表达式。
  

... 包含 $value

的值

那么$value那么呢? The Cocoa Bindings Reference explains

  

多值谓词绑定允许您创建一个搜索字段弹出菜单,该菜单预先填充了与谓词过滤器对应的菜单项。每个谓词绑定对应于搜索字段弹出菜单中的条目。 NSSearchField谓词绑定使用此多值绑定。

     

显示名称字符串用作菜单项标题。谓词格式是字符串,它使用谓词编程指南中描述的谓词格式指定该菜单项的谓词。 谓词格式字符串中出现的任何字符串$value都会替换为搜索字段的内容。

换句话说,NSSearchField为其谓词预定义变量value,以保存当前在该字段中的任何文本,即用户正在搜索的文本。

因此,例如,如果您创建格式为name contains $value的谓词,并且用户搜索“Emily”,则该谓词将匹配name包含的对象(作为子字符串)字符串“Emily”。

答案 1 :(得分:2)

key代表字典的键,$value代表NSSearchField中输入的值。

要从更多字段中搜索,您可以使用||和&&在谓词格式中。

答案 2 :(得分:0)

我以某种方式发现了! 我是谓词格式,我只需要输入

value contains $value

让它发挥作用。现在我明白了!谢谢大家的帮助!!!

答案 3 :(得分:-3)

foreach (var item in dictionary) {
   cellValue.Text = item.Value.ToString();
}