Aumentar o NSTextView para ajustar o conteúdo é recortar a última linha do texto

Eu estou tentando criar um NSTextView que cresce verticalmente como o usuário digita e rola uma vez que a altura atingiu um máximo. Isso é semelhante à exibição de texto em trabalhos de mensagens.

Minha primeira tentativa usa o delegado para escutar alterações de texto e ajustar a restrição de altura associada à exibição de rolagem do 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));
}

Isso quase funciona: a altura da exibição de texto (exibição de rolagem) é atualizada enquanto eu digito, no entanto, a última linha de texto é cortada:

Quando a visualização de rolagem atinge a altura máxima, ela começa a rolar e funciona bem. Eu tentei forçar uma atualização de exibição / layout / restrição na exibição de rolagem envolvente sem sorte. Meu palpite é que a exibição de clipe da visualização de rolagem não está sendo atualizada corretamente e está recortando a parte inferior da exibição de texto. Existe alguma maneira de forçar a exibição de clipe / rolagem para atualizar adequadamente quando a restrição é alterada?

questionAnswers(2)

yourAnswerToTheQuestion