Я подклассифицирую NSTextView и используя следующий код для вычисления внутреннего размера содержимого, чтобы высота текстового представления возрастала с его содержимым в моих ограничениях макета.собственный размер содержимого для NSTextView
- (CGSize)intrinsicContentSize
{
return [[self layoutManager] usedRectForTextContainer:[self textContainer]].size;
}
Это работает, за исключением начального вызова, где он возвращает (0,0) для размера.
Если я вызываю [self setNeedsLayout:YES]
на мой взгляд после создания текстового представления и аннулирования размера содержимого текстового вида в -layout
, он вернет правильный размер для нового пустого текстового представления.
Есть ли способ иметь -intrinsicContentSize
вернуть правильный размер для моего нового текстового вида без обновления макета моего представления?
Вызов 'invalidateIntrinsicContentSize'? – matt
Кстати, обычный способ сделать текстовое представление растет с его содержанием - это посмотреть на его 'contentSize', который поддерживается для вас автоматически .... – matt
@matt Вот что я делаю в -layout, который работает но я не понимаю, почему я должен это делать в первый раз. Я отклоняю размер содержимого при изменении текста, который работает нормально. –