immagine Ordina la visualizzazione in questione intestazione di colonna NSTableView e
-
19-09-2019 - |
Domanda
Ho un NSTableView con 3 colonne. Posso ordinare utilizzando uno qualsiasi dei colunms facendo clic sulla colonna. Ecco il mio problema però: sto preselezione matrice e poi caricarlo nel NSTableView così l'iniziale TableView è già ordinato dai valori in una delle 3 colonne. Ora, quando faccio clic sulle intestazioni delle colonne, posso ricorrere e la piccola ascendente / discendente immagine (triangolo) che indica come il tipo di ordinamento è. Quello che voglio è, per essere in grado di visualizzare questo triangolo ascendingimage nell'intestazione della colonna di destra alla partenza quando il NSTableView viene caricato per la prima volta, per la colonna in base alla quale ho già ordinato l'Array. Grazie in anticipo:)
Thanks Peter and cb160. So I added this in my refreshList method:
Il parametro * lastColumn ha l'identificatore giusto se i visualizzazione utilizzando NSLog, ma ancora quell'immagine triangolo non viene caricato quando i carichi della tabella dati la prima volta. C'è qualcosa che mi manca qui? Il mio tavolo View è configurato in questo modo:
-(IBAction)refreshList:(id)sender
{
//setup array here and sort the array based on one column. This column has
identifier 'col1' and it works as expected
// trying to set the sortindicator image for the column here
NSTableColumn *lastColumn;
lastColumn = [aTableView tableColumnWithIdentifier:@"col1"];
[aTableView setIndicatorImage:[NSImage imageNamed:@"NSDescendingSortIndicator"]
inTableColumn:lastColumn];
[aTable reloadData];
}
- (int) numberOfRowsInTableView:(NSTableView *)aTable
{ // return count of array
}
- (id)tableView:(NSTableView *)aTable objectValueForTableColumn: (NSTableColumn *)
tableColumn row:(int)row
{
//set up arrays here to load data in each column
}
- (void)tableView:(NSTableView *)aTableView sortDescriptorsDidChange:(NSArray
*)oldDescriptors
{
//sort here when column headers are clicked
}
Soluzione
È possibile utilizzare il -setIndicatorImage: inTableColumn: metodo su NSTableView per fare questo.
È possibile utilizzare il NSAscendingSortIndicator
stringhe e NSDescendingSortIndicator
di utilizzare il costruito nel immagini (con il metodo del UIImage
+imageNamed:
.)
È possibile ottenere il parametro NSTableColumn *
per questo metodo utilizzando il -tableColumnWithIdentifier: metodo su NSTableView . Impostare l'idenitfier nella colonna utilizzando l'attributo identificativo in Interface Builder (vedi sotto)