Как мне настроить текст NSTextView, чтобы он соответствовал содержимому окна без необходимости прокрутки? Например, если пользователь набрал длинную строку и, если я позже вывешу строку в виде NSTextView, как я могу сделать ее так, чтобы шрифт уменьшился до небольшого размера, чтобы он соответствовал размеру окна?Как шрифт в строке NSTextView настраивается на размер NSTextView
0
A
ответ
0
В this question принятый ответ обеспечивает способ измерения высоты текста в NSTextView. Используя это, вы можете перебирать разные размеры шрифта (т. Е. От 8-18) от наибольшей до наименьшей остановки &, выбрав первый, который соответствует высоте NSTextView.
(полностью непроверенные) Код:
- (void)autoAdjustFontSizeForTextView:(NSTextView *)myView
{
int minFont = 8;
int maxFont = 18;
for (int i=maxFont; i>=minFont; i--)
{
NSFont *myFont = [NSFont fontWithName:@"Lucida Grande" size:i];
int textHeight = [self heightOfStringInTextView:myView withFont:myFont];
if (textHeight < [myView frame].size.height)
{
// set view font
[textView setFont:myFont];
return;
}
}
}
- (int)heightOfStringInTextView:(NSTextView *)myView withFont:(NSFont *)myFont
{
NSDictionary *attributes
= [NSDictionary dictionaryWithObjectsAndKeys:
myFont,NSFontAttributeName,nil];
NSAttributedString *attributedString
= [[NSAttributedString alloc] initWithString:
[myView string] attributes:attributes];
CGFloat height = [attributedString heightForWidth:
[myView frame].size.width];
return (int)height;
}
Смежные вопросы
- 1. изменить цвет и шрифт NStextView
- 2. Увеличить размер шрифта NSTextView
- 3. Как установить шрифт по умолчанию для NSTextView?
- 4. set default Шрифт для NSTextView с быстрым
- 5. собственный размер содержимого для NSTextView
- 6. Авторезистирование NSTextView и размер шрифта
- 7. NSTextView размер каретки иногда игнорируется
- 8. Возврат Выбор NSTextView атрибутам
- 9. Шрифт со слоем с поддержкой NSTextView
- 10. Как перенаправить STDOUT на NSTextView?
- 11. Установка стандартных шрифтов в NSTextView
- 12. Как отключить перетаскивание на NSTextView?
- 13. Как правильно отобразить в NSTextView? NSString/NSInputStream/NSTextView
- 14. Изменение размера NSTextView
- 15. NSTextView - Как настроить табло?
- 16. NSTextView auto-scroll
- 17. Как toggleRuler для NSTextView?
- 18. Как изменить строкуSpacing NSTextView?
- 19. Жесткая упаковка в NSTextView
- 20. Какао Изменение свойств NSTextView
- 21. Смешивание графики в NSTextView?
- 22. Auto-Indentation в NSTextView
- 23. Как использовать NSTextView в блоке?
- 24. Поисково как подсветка в NSTextView
- 25. Установка NSTextView выбора имени шрифта
- 26. Метод textDidChange в NSTextView
- 27. Результаты NSTask в NSTextView
- 28. Отключить редактирование в NSTextView
- 29. Как добавить NSTextView в NSScrollView?
- 30. NSTextView не отвечает на setString
attributedString не метод "heightForWidth:". Вы можете объяснить строку? – user3011439
Как указано в связанном вопросе, вам понадобится категория [NS (Attributed) String + Geometrics] (https://github.com/jerrykrinock/CategoriesObjC/tree/master/NS (Attributed) String% 2BGeometrics). – insys
«heightOfStringInTextView» ничего не возвращает, несмотря на то, что он написан как «int». Я попробовал вернуть высоту, но это привело к ошибкам в программе. Вы получили этот код для работы? – user3011439