См. Метод sizeWithAttributes:
в «Справочнике по дополнениям NSString Application Kit».
Возвращает NSSize, который можно сравнить с текущим frame.size для textview.
Для «Атрибуты »arg создает NSDictionary с NSFont в качестве объекта и NSFontAttributeName
в качестве ключа.(Не смущайтесь этой константой. Похоже, это ключ для строки, но это не так; это ключ для самого шрифта.)
Получить строку из textview: [[yourTextView textStorage] string]
.Получите familyName используемого шрифта и его текущий размер точки, CGFloat.Составьте шрифты для тестирования, используя конструктор [NSFont fontWithName:familyName size:floatChanged]
.
Как только вы получите шрифт правильного размера, используйте его для создания новой строки NSAttributedString из старой строки.Просто используйте словарь «атрибутов», который вы создали выше (тот, который дал правильный размер) и передайте его в конструктор initWithString:attributes
NSAttributedString.
Назначьте эту атрибутивную строку textStorage (сам подкласс NSMutableAttributedString):[[yourTextView textStorage] setAttributedString:thatYouJustMade]
.
Примечание. Если в текстовом представлении используются такие атрибуты, как подчеркивание или выделение цветом перед / фоном или выделенные курсивом / жирным шрифтом, вы должны получить эту информацию из textStorage и включить ее в новую приписанную строку.Это выполнимоПосмотрите на ссылки на классы для NSAttributedString и NSMutableAttributedString.