2011-09-22 49 views
0

我有一個NSTableView通過NSArrayController綁定到NSString的NSMutableArray。如何在NSTableView中顯示計算值?

還有一個TextView在同一個窗口中。我想要做的是在NSTableView中顯示每個NSString的出現次數。

我想到了一個辦法做到這一點,但看起來不這樣做的優雅的方式:

從NSString的繼承和定義在執行預定義的對象(NSTextView),並返回一個搜索新方法發生的次數。

我猜測必須有更自然的方式來實現相同的結果?

編輯:

對不起,應該澄清。 NSSMutableArray是一個具有NSString屬性的NSObject數組。我想我可以定義一個額外的方法(findAllOccurencesOfString:inString :),它將返回一個數字。但問題是我如何綁定到這個函數,並在該綁定如何傳遞一個var(指向textField的指針)?

+0

所以,你有一個文本視圖,並且你想要一個表格視圖,在文本視圖中每個不同的單詞都有一行,並且有一個單詞出現次數的計數? – jrturton

+0

是的,這是正確的,但tableview中的單詞不一定來自textview,用戶在手動輸入它們。 (順便說一句,我已經添加了一個查找'findAllOccurencesIn:(NSString *)text'的方法,但我不知道如何引用它。只需放入'Model Key Path'似乎不起作用。 – rytis

回答

1

對於表數據源中的任何對象,您都需要具有wordCount(只讀)屬性,因此您必須使用對象自己的字符串值在內部調用您的新方法,因爲您無法傳遞參數在綁定中(除非它們已經改變,我還沒有使用綁定一段時間,因爲我一直專注於iOS)。然後將該屬性綁定到表中的列。據推測,你不需要將指針傳遞給文本框,因爲只有一個?

+0

woohoo !這工作。謝謝!!我在.m中聲明瞭一個靜態變量,它實現了我的數組對象。var指向textview並在文檔類的awakefromnib中設置。現在我只需要弄清楚如何不斷更新列表當用戶正在編輯文本 – rytis

+0

雖然它似乎最初工作,但它似乎並沒有真正的工作 - 它打破了,當我打開多個窗口。這是爲什麼:我定義了一個類方法,設置一個指向一個文本視圖時,節點加載。沒關係,如果只有一個窗口,下一個窗口將完全相同,因此覆蓋第一個窗口設置的內容。返回到第一個窗口和應用程序崩潰(顯然,現在看第二個窗口textview元素) – rytis

+0

I '開始一個新的問題與你的新問題。 – jrturton