Quindi ho trovato la soluzione completa.
In primo luogo, andare a Interface Builder. Seleziona la colonna che vuoi ordinare. Vai alla finestra di ispezione della colonna e scegli il primo pulsante per vedere gli "Attributi della colonna di tabella". valori appropriati impostati (letteralmente, no "o 'o @ sono necessari):
Sort key: file
dove ' file' è la chiave di dizionario che il contenuto viene visualizzato nella colonna
Selector: compare:
funzione di ordinamento di serie .
Ora, salvare tutte le modifiche qui e saltare a Xcode, alla classe in cui è il modello, fonte dei dati riportati nella NSTableView dovreste già sapere che avete bisogno di due metodi là:.
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn
*)tableColumn row:(NSInteger)row
questi due sono necessari per conformare il protocollo informale NSTableDataSource. Puoi leggerlo al MacDev Center.
Ora tutto ciò che dovete fare è aggiungere un nuovo metodo:
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
Può contenere un codice molto semplice che farà la cosa:
-(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];
}
E questo è tutto. Funziona nella mia app, spero che funzioni nel tuo caso: D Tutto dovrebbe funzionare automaticamente. Ho appena salvato tutti i file e costruito l'app. E ha funzionato.:)
sito che mi ha aiutato: CocoaDev: SortingNSTableView
fonte
2010-03-14 16:10:48
Hai salvato la mia giornata! – 11684
Prego! –
Awsumly mi ha salvato dal diventare matto ... :) –