Quando si utilizza - [NSString drawInRect: withAttributes:], principalmente quando si utilizza l'Helvetica Neue incorporata ma anche con altri tipi di carattere, la crenatura è davvero pessima. Tuttavia, quando la stessa stringa viene renderizzata in Text Edit (che usa NSTextView), la crenatura è ottima. Considerate queste due stringhe:Cattiva crenatura quando si usa - [NSString drawInRect: withAttributes:]
Per piccoli formati del punto, il primo caso (reso in Cocoa) è quasi illeggibile, mentre il secondo caso (da Text Edit) è molto meglio. Non penso che le informazioni sulla crenatura vengano usate qui. Se applico NSKernAttribute con un valore di 0.0 (che in base alla documentazione disattiva la crenatura) ottengo lo stesso risultato, quello in alto.
Ho anche provato a utilizzare Core Text con CTLineDraw, ma ho ancora ottenuto la cattiva crenatura. Quindi la mia domanda è: c'è qualcosa di speciale che devo fare per abilitare il kerning nel sistema di testo Cocoa? In caso contrario, in che modo NSTextView applica il kerning?
Quale sistema operativo è in esecuzione? Non c'è differenza sul mio 10.7.4. Vedo una differenza di 2 pixel su 10.6.8 per 72pt H.Neue, ma è ancora molto inferiore rispetto allo screenshot. Sei sicuro che gli attributi di digitazione di default nel tuo NSTextView non includano già un certo valore, hai provato a inviarlo 'useStandardKerning:'? – hamstergene
Questo è 10.7.4, con Helvetica Neue standard (versione 7.0d27e1). Il secondo screenshot proviene da Text Edit (l'app), usando un nuovo documento. – Aderstedt
Seleziona tutto, Formato, Carattere, Kern, Usa predefinito/Nessuno - cambia qualcosa? Non ho questa differenza tra TextEdit e la stringa attribuita disegnata dall'utente. Che ne dici di NSTextFieldCell e NSButtonCell, anche loro disegnano male per te? – hamstergene