2014-01-14 84 views
1

還有類似的問題,但我沒有發現他們中的任何人爲我工作。我想要做的就是根據點擊列標題重新對錶格視圖進行排序。我不想以編程的方式來做這件事,因爲我不認爲我必須這樣做。無論如何...如何使用來自NSTableColumn的綁定對NSArrayController進行排序?

我有一個NSTableView綁定到綁定到我的managedObjectContext NSArrayController。

對於特定的NSTableColumn,我將綁定到Array Controller的值與模型鍵路徑「amount」(這是一個NSNumber)綁定。

我看到這個NSTableColumn的屬性,有一個「排序鍵」和「選擇器」。我將排序鍵設置爲「value.amount」(不知道爲什麼,但我在其他地方看到了這一點),選擇器默認爲「比較:」,這似乎很好。

然後對於NSArrayController,我看到一個名爲「Sort Descriptors」的綁定,我將其綁定到「Shared User Defaults Controller」。 「控制器鍵」默認爲「值」(我假設這是我以前使用過的值),我將「模型鍵路徑」設置爲「金額」。

這聽起來很合理,但我認爲。它不工作,(2),當我想排序基於兩個不同的列什麼此外,(3)如何設置默認的排序方式

更新:??

好了,我有數組控制器綁定到託管對象上下文我有表內容綁定到數組控制器排列對象和選擇索引到數組控制器selectionIndexes我有一個表列值綁定到陣列控制器排列對象和關聯的鍵。排序鍵f或者該列與compare:選擇器是同一個鍵。

雖然我單擊標題時表格並未重新排序。我應該綁定表的排序描述符?

如果可能,你可以給我你的例子嗎?

感謝您的幫助,

切特

回答

1

你應該知道的是無論是NSTableView的和NSArrayController的可以在你的項目進行排序的第一件事。你現在正試圖將兩者混合在一起,而這沒有意義。對於簡單的用途,只需依賴tableView。

所以,不要在NSArrayController中綁定任何東西。對於NSTableColumns,不要使用「value.amount」,只需使用「amount」。 「比較:」對選擇器來說很好。

我剛剛創建了一個小項目(無代碼)來演示這一點,並且它在分類方面效果很好。

+0

謝謝。檢查我的更新 – Chet

相關問題