UITextView NSAttributedString Size

Pracuję nad aplikacją, która używa UITextView.

UITextView powinien rosnąć lub zmniejszać się, aby pasował do tekstu, zarówno w pionie, jak iw poziomie. Aby to zrobić, nadpisuję sizeToFit w podklasie i ustawiam granice w ten sposób:

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

Problem polega na tym, że ten rozmiar nie odzwierciedla prawidłowego rozmiaru łańcucha, ponieważ UITextView klipuje tekst. Ustawiam wstawki krawędzi na zero, więc nie powinno to być problemem?

W tym momencie myślę, że jest to błąd z właściwością rozmiaru NSAttributedString, ale to samo dzieje się, gdy używam opcji boundingRectWithSize: context:

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

Może więc każdy kod wykonujący obliczenia układu dla NSAttributedString nie działa dobrze z obliczeniami układu UITextView.

Oto przykładowy projekt, który pokazuje problem.

Wszelkie pomysły są mile widziane!

EDYCJA: Powinienem również zaznaczyć, że poniższe nie działają:

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

questionAnswers(3)

yourAnswerToTheQuestion