Программный выбор ячейки в NSMatrix автоматически делает ячейку видимой

Я работал с некоторыми устаревшими кодами, и в настоящее время у меня есть NSMatrix как группа переключателей внутри NSScrollView. NSMatrix находится в верхней части NSScrollView, а NSScrollView может содержать до сотен других подпредставлений.

Каждый раз, когда функция -(void)selectCellAtRow:(NSInteger)row column:(NSInteger)column используется для программного выбора переключателя в NSMatrix, NSScrollView будет автоматически прокручиваться вверх, чтобы выбранный переключатель был виден. Некоторых клиентов это очень раздражает.

Это поведение этой функции по умолчанию? Как остановить эту автоматическую прокрутку?

Связанный, но не тот же вопрос: Программный выбор элемента NSMatrix


person Danh Nguyen    schedule 31.07.2018    source источник


Ответы (1)


selectCellAtRow:column: вызывает scrollCellToVisibleAtRow:column:. Подкласс NSMatrix, переопределить

- (void)scrollCellToVisibleAtRow:(NSInteger)row column:(NSInteger)col;

и не вызывать super (если матрица невидима).

person Willeke    schedule 31.07.2018
comment
Отличный ответ. Спасибо, Виллеке! - person Danh Nguyen; 31.07.2018