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