2009-02-15 53 views
8

我有一個簡單的可可用戶界面,包含項目列表和搜索字段,分別使用NSTableView和NSSearchField實現。數據源和所有綁定設置好,並且運行良好。我在列表中看到我的數據,並且可以通過在搜索字段中鍵入字符串來搜索它。當我輸入更多文本時,列表中的項目數量越來越小,最終減少到我正在搜索的一個項目。如何以編程方式重置可可NSSearchField?

現在,我該如何清除搜索字段中的文本並強制列表恢復正常?我可以通過手動清除文本(使用鍵盤)來實現此目的,但是當我嘗試以編程方式執行時,列表中的隱藏項不會返回。

我使用這個:

[searchField setStringValue:@""]; 

以清除在搜索領域的文本,但它不重置名單。

任何想法?有沒有一個簡單的[searchField reset]方法,我在文檔中找不到?

回答

8

我想通了。下面的代碼 工作:

[searchField setStringValue:@""]; 
[[[searchField cell] cancelButtonCell] performClick:self]; 
6

我想通了。下面的代碼工作:

[searchField setStringValue:@""]; 
[[[searchField cell] cancelButtonCell] performClick:self]; 
+0

我討厭留下「未回答」的問題,因爲我沒有能力將自己的答案標記爲已接受。有人可以重新張貼我的答案作爲自己的? – 2009-02-15 03:43:27

+0

問,你們將收到。 – wfarr 2009-02-15 04:57:10

3

[[[searchField cell] cancelButtonCell] performClick:self];可能會奏效,但它確實看起來應該有一個「正確」的解決方案。您的表視圖實際上是綁定到searchField的值還是綁定到一些中間對象,當您將searchField的內容以編程方式設置爲空字符串時,該中間對象不會被更新(但由於綁定的方式被設置在筆尖)?

相關問題