Podczas używania - [NSString drawInRect: withAttributes:], głównie podczas korzystania z wbudowanej czcionki Helvetica Neue, ale także z innymi czcionkami, kerning jest naprawdę zły. Jednak gdy ten sam ciąg jest renderowany w edytorze tekstu (który używa NSTextView) kerning jest świetny. Rozważmy te dwa ciągi:Nieprawidłowe kerning podczas używania - [NSString drawInRect: withAttributes:]
Dla małych rozmiarach punktowych, pierwszy przypadek (wydanego w kakao) jest prawie nieczytelny, natomiast drugi przypadek (z Text Edit) jest znacznie lepsza. Nie sądzę, że tutaj używa się informacji o kerningu. Jeśli zastosuję NSKernAttribute z wartością 0.0 (co zgodnie z dokumentacją wyłącza kerning) otrzymuję ten sam wynik, ten na górze.
Próbowałem również używać Core Text z CTLineDraw, ale nadal mam złe kerning. Moje pytanie brzmi: czy jest coś specjalnego, co muszę zrobić, aby włączyć kerning w systemie tekstowym Cocoa? Jeśli nie, w jaki sposób NSTextView stosuje kerning?
Z jakiego systemu operacyjnego korzystasz? Nie ma różnicy na moim 10.7.4. Widzę różnicę 2-piksele na 10.6.8 dla 72pt H.Neue, ale to wciąż jest dużo niższe niż na zrzucie ekranu. Czy jesteś pewien, że domyślne atrybuty pisania w twoim NSTextView nie zawierają już pewnej wartości, czy próbowałeś wysłać to 'useStandardKerning:'? – hamstergene
To jest 10.7.4, ze standardową Helvetica Neue (wersja 7.0d27e1). Drugi zrzut ekranu pochodzi z edycji tekstu (aplikacja) przy użyciu świeżego dokumentu. – Aderstedt
Wybierz wszystko, format, czcionkę, kern, użyj domyślnego/brak - czy coś zmienia? Nie ma różnicy między tekstem TextEdit i ciągiem przypisanym niestandardowo. A co z NSTextFieldCell i NSButtonCell, czy one też są dla ciebie złe? – hamstergene