2010-11-30 55 views
8

我有一個NSTableView時,當我點擊一個特定的標題列表中的數據顛倒或排序顛倒。我檢查了NSTableView以及NSTableColumn,但找不到禁用此功能的任何方法。如果任何人都可以通過單擊某個特定列的標題來禁用此排序,我將不勝感激。如何禁用NSTableVIew中的排序?

+1

該死的,請不要在「[Objective C]」前加問題標題。你不僅錯過了一個連字符,但你也錯過了這一點。這就是標籤的用途。 – 2010-11-30 07:10:27

+0

@ Jonathan:如果你想出了一些答案,我會感激不盡 – Omayr 2010-11-30 07:50:01

回答

36

NSTableView的排序通過其sortDescriptors完成,參見here

NSTableColumn使用其sortDescriptorPrototype(見here)生成NSTableView的排序描述符,這取決於你有多少次的點擊列標題等

如果使用dataSource來管理數據,則排序描述符通過代理方法tableView:sortDescriptorsDidChange:進行通信,請參閱here。您只需忽略更改消息即可停止排序。

如果使用Cocoa綁定來管理數據,排序描述符由表列生成並設置爲NSArrayController。要停止它,只需打開表列綁定的檢查器,選擇value,然後取消選中「創建排序描述符」。