Ich möchte die Breite eines NSString auf dem Bildschirm in Pixel angezeigt wissen. Daher kann ich ein NSTextField so anpassen, dass es exakt der Länge der Zeichenfolge entspricht. Also habe ich IBs "Label" NSTextField verwendet und für diejenigen, die nicht wissen, was ich meine, habe ich ein Label mit dem Titel "Label", Schriftart "Lucida Grande 13px", nicht auswählbar, nicht editierbar, normale Größe, kein Hintergrund und entsprechend zu IB ist seine Breite 38px breit.NSString sizeWithAttributes: Ungenauigkeit
Wenn ich will, seine Breite Ich benutze
[@"Label" sizeWithAttributes: [NSDictionary dictionaryWithObject: [NSFont fontWithName: @"Lucida Grande" size: 13] forKey: NSFontAttributeName]].width
programmatisch erhalten, die mir 33,293457 geben. Das sind also etwa 5 px der realen Breite.
Könnte sein, aber die Höhe ist korrekt mit 6 Ziffern nach dem Komma ... Nach einigen Tests sieht es so aus, dass es immer ~ 5 px kleiner als das Original ist. Deshalb vermute ich, dass etwas mit den Attributen nicht stimmt und ich weiß nicht was. Sogar die korrekte Farbe, den Hintergrundstil, den Absatzstil, den Zeilenumbruchmodus und die Richtung zu übergeben, gibt mir die gleichen Ergebnisse von ~ 5 px kleiner. – Jef