У меня есть приложение для простого чата с текстовыми сообщениями, основанное на представлении NSTableView, как вы можете видеть на рисунке ниже. Каждое сообщение содержит экземпляр NSTextView, имеющий высоту, соответствующую всем текстам.Как вызвать программный метод autoscroll NSScrollView
Все, что мне нужно, - это запустить NSScrollView (который окружен NSTableView-экземпляром) автопрокруткой, когда пользователь выбирает текст, перетаскивая мышь достаточно далеко. К сожалению, автопрокрутка не появляется. В случае перетаскивания где-то за пределы текстовых представлений все преуспеть.
Я пытался позвонить autoscroll:
-методу непосредственно просто нажмите NSEvent
-instance из NSTextView
-subclass «мыши тащил» -Event (как в примере с this article):
- (void)mouseDragged:(NSEvent *)event
{
[self.scrollView autoscroll:event];
}
Как я уже перекрыл все события мыши и реализовал весь выбор текста, этот метод часто вызывает. Но автопрокрутка, похоже, не работает.
UPDATE
я понял, что перед вызовом -autoscroll:
-метода должно быть -mouseDown:
одного и того же объекта. Но это нарушает мой механизм выбора текста. Дело даже не в том, чтобы быть первым ответчиком, не должно быть ничего, кроме метода mouseDown:
.
Если вы говорите, что с помощью NSTableView внутри NSScrollView, а строки NSTableView являются многострочными, а при выборе текста внутри ячейки и перетаскивании вниз под низу прокрутки оно не прокручивается? Если это так, то эта функция предоставляется автоматически NSScrollView, и при прокрутке ничего не требуется для прокрутки. Для тестирования я создал новый проект, добавил NSScrollView (NSTableView), установил высоту строки больше, чем просмотр прокрутки, и заполнил таблицу. Нажав на текст, а затем выберите нижнюю часть прокрутки. Он прокручивается автоматически. – Jay
@Jay Мне нужно запустить автопрокрутку прокрутки NSTableView, а не текстовое представление (текстовое представление имеет достаточно высоту, чтобы соответствовать тексту). – Astoria
Я не уверен, что вы просите. Предполагая, что вы используете NSTableView из библиотеки объектов в окне в Xcode, NSTableView будет заключен в NSScrollview.Если вы пытаетесь выбрать текст в строке в виде таблицы, щелкнув мышью в строке, где текст и перетаскивается вниз (как это показано на снимке экрана, прилагаемый NScrollView обрабатывает это автоматически и будет прокручиваться так, чтобы вы можете продолжать выбирать текст. – Jay