2013-03-08 10 views
7

OK, questa è la mia situazione:Scorrere NSTableView alla selezione

  • Ho un NSMutableArray legato ad un NSTableView, tramite un NSArrayController.
  • che sto manipolando la selezione della vista tabella (trigger da tastiera), utilizzando NSArrayController s' selectNext: e selectPrevious:

La cosa è: La selezione fa cambiamento, ma la vista della tabella non scorre a la selezione corrente, in modo che il suo contenuto sia visibile.

Cosa devo fare? Qualche idea?

risposta

16

c'è un metodo in NSTableView

- (void)scrollRowToVisible:(NSInteger)row; 

Che vi scorrere fino alla specificato row.

+1

Grazie per il suggerimento. L'ho già provato e funziona. Tuttavia, c'è ancora qualche problema: a) anche se sto facendo '[myTableView scrollRowToVisible: [myTableView selectedRow]]' (subito dopo 'selectNext:' e 'selectPrevious:', non scorre fino a * current * linea, ma quella prima o dopo (rispettivamente). b) anche dopo un '[myTableView scrollRowToVisible: [myTableView selectedRow] +1]' (dopo 'selectNext:'), si * fa * compare, ma lo scorrimento è *non liscio. (** SUGGERIMENTO **: la vista tabella è * non * a fuoco). Qualche idea? –

+1

Scusate per la risposta in ritardo, in realtà ho creato un progetto da verificare, e ha funzionato per me, poiché ho usato il pulsante '- (IBAction): (id) mittente { [self.array addObject: @" Anoop "]; [self.myTable reloadData]; [self.myTable scrollRowToVisible: self.array.count-1]; } ' –

+1

Aveva lo stesso problema di @ Dr.Kameleon. Immagino sia perché quando invochi "selectPrevious', le proprietà della vista non cambieranno immediatamente. Anche l'invio di 'scrollRowToVisible' per" tardi "ha aiutato. Non è bello, ma è meno di un hack per mitigare le condizioni di gara di +/- 1: 'DispatchQueue.main.async {tableView.scrollRowToVisible (tableView.selectedRow)}' – ctietze

Problemi correlati