所以我找到了完整的解決方案。
首先,進入Interface Builder。選擇您想要排序的列。轉到列的檢查器,然後選擇第一個按鈕以查看「表列屬性」。設置適當的值(從字面上看,沒有「或」或@需要):
Sort key: file
哪裏。‘文件’是內容在列中顯示的字典中的關鍵
Selector: compare:
標準排序功能。
現在,在這裏保存所有更改,並跳轉到Xcode中,對類中的模型,在NSTableView的顯示的數據的來源你應該已經知道你需要兩個方法有:
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn
*)tableColumn row:(NSInteger)row
這兩個是需要符合NSTableDataSource非正式協議。你可以在MacDev中心閱讀它。
現在,所有你需要做的是增加一個新的方法:
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
它可以包含一個非常簡單的代碼,會做的事:
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
{
NSArray *newDescriptors = [tableView sortDescriptors];
[results sortUsingDescriptors:newDescriptors];
//"results" is my NSMutableArray which is set to be the data source for the NSTableView object.
[tableView reloadData];
}
而這一切。它在我的應用程序中工作,希望它可以在你的情況下工作:D一切都應該自動工作。我剛剛保存了所有文件並構建了應用程序。它的工作。:)
網站,幫助我: CocoaDev: SortingNSTableView
你救了我的一天! – 11684 2012-11-26 19:34:29
不客氣! – 2012-11-27 14:32:53
非常難以挽救我的生氣...... :) – 2013-11-03 18:19:46