Увеличение NSTextView для соответствия содержимому обрезает последнюю строку текста

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

Моя первая попытка использовать делегат для прослушивания изменений текста и настройки ограничения высоты, связанного с представлением прокрутки NSTextView:

- (void)textDidChange:(NSNotification *)notification
{
    NSTextView *textView = self.textView;
    NSRect usedRect = [textView.textContainer.layoutManager usedRectForTextContainer:textView.textContainer];
    NSLog(@"DEBUG: used rect: %@", NSStringFromRect(usedRect));
    self.textViewHeightConstraint.constant = MIN(80.f, MAX(usedRect.size.height, 30.f));
}

Это почти работает: высота представления текста (представление прокрутки) обновляется по мере ввода текста, однако последняя строка текста обрезается:

Когда представление прокрутки достигает максимальной высоты и начинает прокручивать, оно работает хорошо. Я попытался принудительно обновить отображение / макет / ограничение в представлении прокрутки, но безуспешно. Я предполагаю, что представление клипа представления прокрутки не обновляется правильно, и оно обрезает нижнюю часть текстового представления. Есть ли способ принудительно обновить представление представления / прокрутки клипа при изменении ограничения?

Ответы на вопрос(2)

Ваш ответ на вопрос