Desidero conoscere la larghezza di una NSString visualizzata sullo schermo in pixel. Quindi posso adattare un NSTextField ai suoi limiti per essere esattamente la lunghezza della stringa stessa. Così ho usato IB "Label" NSTextField e per coloro che non sanno cosa intendo, ho ottenuto un'etichetta con il titolo "Label", font "Lucida Grande 13px", non selezionabile, non modificabile, dimensioni regolari, senza sfondo e secondo a IB la sua larghezza è 38 px di larghezza.Dimensione NSStringWithAttributes: imprecisione
Se voglio ottenere la sua larghezza programatically Io uso
[@"Label" sizeWithAttributes: [NSDictionary dictionaryWithObject: [NSFont fontWithName: @"Lucida Grande" size: 13] forKey: NSFontAttributeName]].width
che mi darà 33,293,457 mila. Quindi questo è circa 5 px della larghezza reale ..
Potrebbe essere, ma l'altezza è corretta con 6 cifre dopo la virgola ... Dopo aver eseguito alcuni test sembra che il risultato sia sempre ~ 5 px più piccolo dell'originale .. Ecco perché sospetto che qualcosa non funzioni con gli attributi e non so cosa. Anche passando il colore corretto, lo stile di sfondo, lo stile di paragrafo, la modalità di interruzione di riga e la direzione mi danno gli stessi risultati di ~ 5 px più piccoli. – Jef