Al usar - [NSString drawInRect: withAttributes:], principalmente cuando se utiliza el Helvetica Neue incorporado pero también con otras fuentes, el kerning es realmente malo. Sin embargo, cuando se representa la misma cadena en Text Edit (que usa NSTextView), el kerning es genial. Tenga en cuenta estas dos cadenas:Interletraje incorrecto al usar - [NSString drawInRect: withAttributes:]
Para los tamaños de punto pequeños, el primer caso (dictada en cacao) es casi ilegible, mientras que el segundo caso (de edición de texto) es mucho mejor. No creo que la información de interletraje se esté utilizando aquí. Si aplico NSKernAttribute con un valor de 0.0 (que de acuerdo con la documentación desactiva el interletraje) obtengo el mismo resultado, el que está en la parte superior.
También intenté usar Core Text con CTLineDraw, pero todavía obtuve el kerning incorrecto. Entonces mi pregunta es, ¿hay algo especial que deba hacer para habilitar el kerning en el sistema de texto Cocoa? Si no, ¿cómo aplica NSTextView kerning?
¿Qué sistema operativo está ejecutando? No hay diferencia en mi 10.7.4. Veo una diferencia de 2 píxeles en 10.6.8 para 72 puntos H. No, pero aún es mucho más bajo que en la captura de pantalla. ¿Estás seguro de que los atributos de escritura predeterminados en tu NSTextView aún no incluyen algún valor? ¿Intentó enviarlo 'useStandardKerning:'? – hamstergene
Esto es 10.7.4, con el Helvetica Neue estándar (versión 7.0d27e1). La segunda captura de pantalla es de Edición de texto (la aplicación), utilizando un documento nuevo. – Aderstedt
Seleccionar todo, Formato, Fuente, Kern, Usar predeterminado/Ninguno - ¿Cambia algo? No tengo esa diferencia entre TextEdit y la cadena atribuida personalizada. ¿Qué pasa con NSTextFieldCell y NSButtonCell, también dibujan mal para usted? – hamstergene