immagine Ordina la visualizzazione in questione intestazione di colonna NSTableView e

StackOverflow https://stackoverflow.com/questions/2038554

  •  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
} 
È stato utile?

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)

costruttore di interfaccia Xcode screenshot

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top