NSString sizeWithAttributes: Погрешность

Я хочу знать ширину NSString, отображенного на экране в пикселях. Таким образом, я могу соответствовать NSTextField его границы, чтобы быть точно длиной самой строки. Таким образом, я использовал IB's, "Маркируют" NSTextField и для тех, кто не знает то, что я имею в виду, я получил маркировку с заголовком "Маркировка", шрифт "Lucida Grande 13px", не можно выбрать, не доступный для редактирования, обычный размер, никакой фон, и согласно IB его ширина 38 пкс шириной.

Если я хочу получить его ширину программно, я использую

[@"Label" sizeWithAttributes: [NSDictionary dictionaryWithObject: [NSFont fontWithName: @"Lucida Grande" size: 13] forKey: NSFontAttributeName]].width

Который даст мне 33.293457. Таким образом, это составляет приблизительно 5 пкс реальной ширины..

5
задан Jef 13 March 2010 в 18:15
поделиться

1 ответ

Звучит разумно. Вы сравниваете две разные ширины; ширина необработанной строки по сравнению с шириной строки, содержащейся в NSTextField. Содержащаяся строка, вероятно, имеет только немного отступов с обоих концов, среди других незначительных отличий.

0
ответ дан 14 December 2019 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: