Quiero saber el ancho de un NSString que se muestra en la pantalla en píxeles. Así que puedo ajustar un límite de NSTextField para que sea exactamente la longitud de la cadena. Así que utilicé la "Etiqueta" de IB NSTextField y para aquellos que no saben lo que quiero decir, obtuve una etiqueta con el título "Etiqueta", letra "Lucida Grande 13px", no seleccionable, no editable, tamaño regular, sin fondo y de acuerdo para IB su ancho es de 38px de ancho.NSString sizeWithAttributes: Inexactitud
Si quiero conseguir su anchura programáticamente utilizo
[@"Label" sizeWithAttributes: [NSDictionary dictionaryWithObject: [NSFont fontWithName: @"Lucida Grande" size: 13] forKey: NSFontAttributeName]].width
que me dará 33.293457. Entonces eso es aproximadamente 5 px del ancho real.
Podría ser, pero la altura es correcta con 6 dígitos después de la coma ... Después de hacer algunas pruebas parece que siempre resulta ~ 5 px más pequeño que el original ... Es por eso que sospecho que algo anda mal con los atributos. y no sé qué. Incluso pasar el color correcto, el estilo de fondo, el estilo de párrafo, el modo de salto de línea y la dirección me da los mismos resultados de ~ 5 px más pequeños. – Jef