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