Ogni colonna della tabella ha un metodo setSortDescriptorPrototype
Ordina descrittori sono modi di raccontare la matrice come ordinare sé (ascendente, discendente, caso ignorando etc.) iterare su ciascuna delle colonne che si vogliono, ordinabili e chiamare questo metodo su ciascuna di queste colonne, e passare il descrittore di tipo richiesto (Nel mio caso sarò utilizzando l'identificatore di colonna)
for (NSTableColumn *tableColumn in tableView.tableColumns) {
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:tableColumn.identifier ascending:YES selector:@selector(compare:)];
[tableColumn setSortDescriptorPrototype:sortDescriptor];
}
Dopo aver scritto questo pezzo di codice di inizializzazione, NSTableViewDelegate
ha un metodo - (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray *)oldDescriptors
che notifica ogni volta che una specie il descrittore è cambiato, implementare questo metodo nel delegato e inviare un messaggio ai dati arr ay per ordinare sé
- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray *)oldDescriptors
{
self.data = [self.data sortedArrayUsingDescriptors:sortDescriptors];
[aTableView reloadData];
}
Questo metodo otterrà sparato ogni volta una colonna viene cliccato, e NSTableColumn
mostra un piccolo triangolo che mostra l'ordinamento.
Ho due colonne nella tabella, come nome e stipendio, ho messo i valori hardcoded senza binding, ora voglio ordinare i dati, come eseguo questo compito. – upender