Прокрутка содержимого для отображения текущей позиции курсора в NSTextView

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

введите описание изображения здесь

Ссылаясь на картинку выше, с

NSUInteger cPosition = [[[textView1 selectedRanges] objectAtIndex:0] rangeValue].location;
[textView1 scrollRangeToVisible:NSMakeRange(0,cPosition)];

представление прокрутки прокручивает себя до положения, при котором выбранная строка (документ) будет находиться внизу представления содержимого. (Строка 11). Это не совсем то, что я хочу. Я хотел бы, чтобы представление прокрутки прокручивалось само, чтобы показывать текстовую строку в текущей позиции курсора, когда она скрыта под представлением содержимого (например, в строке 14). Как я могу улучшить свой код?

Muchos спасибо.

1 ответ

Решение

Одним из решений будет использование enumerateSubstringsInRange:options:usingBlock: метод NSString с опцией NSStringEnumerationByParagraphs и передача диапазона, содержащего вашу cPosition, в scrollRangeToVisible:. Это приведет к тому, что абзац, содержащий вашу cPosition, станет видимым.

Другие вопросы по тегам