У меня есть приложение для простого чата с текстовыми сообщениями, основанными на представлении NSTableView, как вы можете видеть на рисунке ниже.
Каждое сообщение содержит экземпляр NSTextView, имеющий высоту, соответствующую всем текстам.
Все, что мне нужно - это запустить NSScrollView (который включен в NSTableView-экземпляр), а пользователь выбирает текст, перетаскивая мышью достаточно далеко. К сожалению, автопрокрутка не появляется. В случае перетаскивания где-то за пределы текстовых представлений все удаются.
Я попытался вызвать autoscroll:
-метод непосредственно, просто нажав NSEvent
-instance из NSTextView
-subclass "мышь перетащила" -event (как в примере из в этой статье):
- (void)mouseDragged:(NSEvent *)event
{
[self.scrollView autoscroll:event];
}
Поскольку я перегрузил все события мыши и реализовал весь выбор текста, этот метод часто вызывает. Но автопрокрутка не работает.
UPDATE
Я понял, что перед вызовом -autoscroll:
-метода должен быть -mouseDown:
того же самого объекта. Но это нарушает мой механизм выбора текста. Дело даже не в том, чтобы быть первым ответчиком, не должно быть ничего, кроме метода mouseDown:
.