Высота NSTextView с одной строкой? - PullRequest
2 голосов
/ 25 августа 2008

Я хочу программно создать NSTextView. Как определить правильную высоту рамки, чтобы представление отображало одну строку текста с текущим шрифтом по умолчанию?

Ответы [ 2 ]

4 голосов
/ 25 августа 2008

В классе NSFont есть метод, который может дать вам размер прямоугольника, который будет заключать в себе определенную приписанную строку. Получите шрифт, используемый вашим текстовым представлением, создайте строку, которая служит разумным примером того, что будет в текстовом представлении, и используйте это, чтобы сообщить высоту вашего кадра. (Высота кадра должна быть на несколько точек больше, чем фактический прямоугольник, в котором будет отображаться строка.)

Кроме того, вы можете получить различные метрики из шрифта и попытаться рассчитать разумный кадр из этого. Это может или не может работать; например, такой шрифт, как Apple Chancery, имеет огромное количество вариаций в зависимости от визуализируемых глифов, места в слове и т. д .; Я не знаю, что вы можете заранее рассчитать, какой будет необходимый размер, не зная точно, что вы собираетесь визуализировать.

2 голосов
/ 18 сентября 2008

Было бы более нормально использовать NSTextField, чем NSTextView для одной строки текста.

С NSTextField просто сделайте следующее:

[textField setFont:myFont];
[textField sizeToFit];

О, и нет встроенного «текущего шрифта по умолчанию». Если приложение имеет такую ​​концепцию, оно должно отслеживать его самостоятельно. Панель шрифтов не читает и не записывает что-либо глобальное, она используется для работы с конкретными текстовыми объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...