Я хочу знать ширину NSString, отображаемую на экране в пикселях. Поэтому я могу соответствовать NSTextField своим границам, чтобы быть точно самой длиной самой строки. Поэтому я использовал «Label» для NSTextField и для тех, кто не знает, что я имею в виду, я получил ярлык с надписью «Label», шрифт «Lucida Grande 13px», не подбираемый, не редактируемый, обычный размер, без фона и в соответствии с для IB ширина составляет 38 пикселей.NSString sizeWithAttributes: Неточность
Если я хочу, чтобы получить его ширину программно я использую
[@"Label" sizeWithAttributes: [NSDictionary dictionaryWithObject: [NSFont fontWithName: @"Lucida Grande" size: 13] forKey: NSFontAttributeName]].width
Который даст мне 33.293457. Таким образом, это около 5 пикселей реальной ширины.
Может быть, но высота правильная с 6 цифрами после запятой ... После выполнения некоторых тестов это выглядит так, что результат всегда равен ~ 5 px меньше оригинала .. Вот почему я подозреваю, что что-то не так с атрибутами и я не знаю, что. Даже передача правильного цвета, фонового стиля, стиля абзаца, режима разрыва строки и направления дает мне те же результаты размером ~ 5 px меньше. – Jef