2013-03-08 15 views
7

ОК, это моя ситуация:прокрутка NSTableView для выбора

  • У меня есть NSMutableArray связанного с NSTableView, через NSArrayController.
  • Я манипулируя выбор табличного представления (триггер с клавиатуры), используя NSArrayController «s selectNext: и selectPrevious:

незадача: Выбор делает изменения, но вид таблицы не выделите текущий выбор, чтобы его содержимое было видно.

Что мне делать? Есть идеи?

ответ

16

Существует метод в NSTableView

- (void)scrollRowToVisible:(NSInteger)row; 

Это будет прокручиваться до указанного row.

+1

Спасибо за предложение. Я уже пробовал, и он работает. Тем не менее, есть еще одна тонкая проблема: а) хотя я делаю '[myTableView scrollRowToVisible: [myTableView selectedRow]]' (сразу после 'selectNext:' и 'selectPrevious:', он не прокручивается до * current * line, но он либо до, либо после него (соответственно) .b) даже после '[myTableView scrollRowToVisible: [myTableView selectedRow] +1]' (после 'selectNext:'), он * делает *, появляется, но прокрутка *не гладко. (** СОВЕТ **: представление таблицы * не * в фокусе). Есть идеи? –

+1

Извините за поздний ответ, на самом деле я создал проект для проверки, и это сработало для меня, поскольку я использовал кнопку '- (IBAction): (id) отправителя { [self.array addObject: @" Anoop "]; [self.myTable reloadData]; [self.myTable scrollRowToVisible: self.array.count-1]; } ' –

+1

Имел ту же проблему, что и @ Dr.Kameleon. Я думаю, это потому, что когда вы вызываете 'selectPrevious', свойства вида не будут немедленно изменены. Диспетчерский 'scrollRowToVisible' для« позже »тоже помог. Это некрасиво, но это не так просто, чтобы смягчить условия гонки, чем +/- 1: 'DispatchQueue.main.async {tableView.scrollRowToVisible (tableView.selectedRow)}' – ctietze

 Смежные вопросы

  • Нет связанных вопросов^_^