UITextView NSAttributedString Size

Estou trabalhando em um aplicativo que usa um UITextView.

O UITextView deve crescer ou encolher para ajustar seu texto, tanto vertical como horizontalmente. Para fazer isso, estou substituindo sizeToFit em uma subclasse e defino os limites da seguinte forma:

- (void)sizeToFit {
    [self setBounds:(CGRect){.size = self.attributedText.size}];
}

O problema é que esse tamanho simplesmente não reflete o tamanho correto da string, já que o UITextView recorta o texto. Eu estou definindo a borda insets para zero, de modo que não deve ser um problema certo?

Neste ponto, eu acho que é um bug com a propriedade de tamanho do NSAttributedString, mas a mesma coisa acontece se eu usar boundingRectWithSize: options: context:

[self setBounds:(CGRect){.size = [self.attributedText boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX) options:0 context:nil].size}];

Então, talvez qualquer código que esteja fazendo cálculos de layout para NSAttributedString não funcione bem com os cálculos de layout do UITextView.

Aqui está um exemplo de projeto que demonstra o problema.

Qualquer idéia é bem vinda!

EDIT: Eu também devo salientar que o seguinte não funciona:

- (void)sizeToFit {
    [self setBounds:(CGRect){.size = [self sizeThatFits:self.attributedText.size]}];
}

questionAnswers(3)

yourAnswerToTheQuestion