2013-01-02 110 views
3

我提供了一個NSTableView(一列),一個NSSearchField和一個NSButton('添加')的工作表。 我想要的是將表視圖的內容設置爲字符串列表。此字符串列表位於NSArray,名爲列表。應根據搜索字段的內容過濾此內容(如果列表中的字符串)不包含搜索字段的內容,它將不再顯示在表格視圖中。使用NSArrayController過濾單列NSTableView

我不熟悉綁定,任何人都可以幫我解決。

回答

5

我已經上傳了project,請檢查。

一個粗略的想法如何做是:(但是理解是通過看項目更容易)

  1. 創建陣列控制器。

  2. 集的陣列控制器對象

    Mode:Class 
    
        Class Name: Your custom Class 
    
  3. 接收操作

    add: to the button that will add new objects, typically labelled with + 
    
        remove:to the button that will add new objects., typically labelled with - 
    
  4. 引用綁定(無論是從表或從這裏表中的各列)。

  5. 對於搜索領域

    Bindings, Predicate to Array Controller 
    
    ControllerKey : filterPredicate 
    
    Predicate Format : <class property> contains $value 
    
    (if to search in multiple table columns then <class property 1> contains $value || <class property 2> contains $value etc….) 
    
+0

偉大的作品!只是一個問題:沒有自定義類可以做到這一點嗎?創建一個只有一個'NSString'作爲實例變量的整個類是很愚蠢的。目前我在數組控制器上使用'-setContent:',但我不確定如何將其值綁定到表視圖和所有其他。 – Fatso

+0

沒關係!我發現了自己的一些舊代碼,並且綁定了表視圖的內容,而不是綁定列的值。感謝您的幫助! – Fatso

+0

請記住它的名字:Array Controller not string controller ...我希望你得到了答案:p –

相關問題