Я пытаюсь реализовать прокрутку пишущей машинки в моем текстовом редакторе Какао, сохраняя точку вставки по центру вертикально в виде прокрутки.
С этой целью я подклассифицировал NSClipView
, чтобы обеспечить метод scrollToPointWithoutConstraint
, который прокручивает документ до указанной точки без вызова constrainScrollPoint
. Это необходимо, потому что для коротких документов точка вставки не может быть отцентрирована, если мы не прокручиваем границы документа.
Пока это кажется достаточно простым и делает то, что я хочу. Проблема возникает, когда я пытаюсь прокрутить, используя полосы прокрутки. Если я прокручиваюсь до конца документа, так что часть представления прокрутки содержит область за пределами границ документа, попытка прокрутки вверх с небольшим приращением заставляет представление прокрутки прыгать, немедленно зажимая фактические границы документа.
Я понял, что мне может понадобиться создать подкласс NSTextView
и переопределить метод adjustScroll
; вот где начинается мой актуальный вопрос. Размер proposedVisibleRect
, который передается в adjustScroll
, уже настроен так, что он лежит в пределах фактических границ документа. Есть ли способ изменить значение proposedVisibleRect
до вызова adjustScroll
? Или я не совсем согласен с этим? Любые предложения будут с благодарностью.