Вызывать drawSelectionInRect только при изменении выбора в пользовательском классе TableRowView?
В моем приложении OSX я создаю подкласс NSTablRowView, чтобы сделать цвет выбора строки для моего представления на основе настраиваемого tableView.
Я использую следующий метод переопределения для этого:
- (void)drawSelectionInRect:(NSRect)dirtyRect
Я заметил, что этот метод вызывается все время, когда выбрана хотя бы одна из строк на экране.
Мне интересно, есть ли способ не перерисовывать строки все время, а делать это только при изменении выбора строки?!
Любая помощь высоко ценится!
1 ответ
Мне интересно, есть ли способ не перерисовывать строки все время, а делать это только при изменении выбора строки?!
Табличные представления звонков drawSelectionInRect:
ровно один раз после того, как выбор изменился. (При условии, что нет чрезмерных вызовов setNeedsDisplay)
drawRect:
с другой стороны, должен вызываться как минимум дважды (1x для невыбранной строки и 1x для вновь выбранной).
Я заметил, что NSTableView
иногда также перерисовывает "промежуточные" строки при изменении выделения. (например, строки 3-5, когда выбор изменяется со строки 2 на 6).