2013-03-10 139 views
0

我有一個NSSearchField綁定到NSDictionaryController。在我的搜索字段的謂詞格式中,我有這樣的代碼key contains $value,這是什麼意思?謂詞格式(代碼行)有哪些其他替代方法?謝謝!

回答

2

key代表字典的鍵和$value代表輸入的值在NSSearchField

如需查詢更多字段,請使用||和Predicate Format中的& &。

+0

http://stackoverflow.com/questions/15274870/cocoa-binding-mutable-dictionary-with-search-field – 2013-03-10 11:28:17

+0

那麼如果我想搜索字典的價值? – user1927992 2013-03-10 11:31:19

+0

然後將表與鍵和值綁定到兩列,並使用||採用預測格式。 – 2013-03-10 11:34:35

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

我覺得這個答案的意思是單挑問題 – CodaFi 2013-03-10 12:35:31

3

快速search of the docs變成了this chapter in the Predicate Programming Guide

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

我沒有看到任何地方對其進行了明確提到,但含義是標識符不是由$前綴作爲密鑰,即,通過Key-Value Coding檢索處理。謂詞將從辭典控制器,其value forkey匹配對象...

CONTAINS
左側的表達式中包含右邊的表達式。

... 包含$value值。

那麼什麼是$value呢? The Cocoa Bindings Reference explains

多值謂詞綁定允許您創建一個搜索字段彈出式菜單,該菜單預先填充了與謂詞過濾器對應的菜單項。每個謂詞綁定對應於搜索字段彈出式菜單中的條目。這個多值綁定由NSSearchField謂詞綁定使用。

顯示名稱字符串用作菜單項標題。謂詞格式是字符串,它使用Predicate Programming Guide中描述的謂詞格式來指定該菜單項的謂詞。 謂詞格式字符串中出現的任何字符串$value都會被替換爲搜索字段的內容。

換句話說,一個NSSearchField預定義變量value其謂詞爲保持任何文字是當前在用戶搜索場即,文本。因此,例如,如果您創建格式爲name contains $value的謂詞,並且用戶搜索「Emily」,則該謂詞將匹配name包含(作爲子字符串)字符串「Emily」的那些對象。

+0

然後,如果我有有鑰匙的字典:一,二三。字符串值是:1,2,3。我想搜索它,當我鍵入「1」時,搜索結果顯示對象1及其關鍵字?如何搜索字典值而不是密鑰? – user1927992 2013-03-11 09:39:36

+0

用一種更簡單的方式說明,如何綁定謂詞格式,以便我可以搜索「值」而不是搜索「鍵」?謝謝! – user1927992 2013-03-11 09:40:19

0

我以某種方式發現了! 我作謂語形式,我只需要鍵入

value contains $value 

爲它工作。現在我明白了!感謝大家的幫助!!!