當使用 - [NSString drawInRect:withAttributes:]時,主要在使用內置的Helvetica Neue而且還使用其他字體時,字距變得非常糟糕。但是,當在文本編輯(使用NSTextView)中呈現相同的字符串時,字距很好。考慮這兩個字符串:當使用 - [NSString drawInRect:withAttributes:]
對於體積小點,第一種情況下(在可可渲染)幾乎難以辨認,而第二種情況(從文本編輯)要好得多。我認爲這裏沒有使用字距信息。如果我使用值爲0.0的NSKernAttribute(根據文檔關閉字距調整),我會得到相同的結果,即頂部的結果。
我也嘗試使用核心與文本CTLineDraw,但仍然得到了壞字距。所以我的問題是,在Cocoa文本系統中啓用字距調整有什麼特別的需要嗎?如果不是,NSTextView如何應用字距調整?
什麼操作系統,你運行?我的10.7.4沒有區別。對於72pt H.Neue,我確實在10.6.8上看到了2像素的差異,但這仍然比屏幕截圖上的低很多。您確定NSTextView中的默認輸入屬性不包含某些值,您是否嘗試將它發送給'useStandardKerning:'? – hamstergene
這是10.7.4,標準Helvetica Neue(版本7.0d27e1)。第二個截圖來自文本編輯(應用程序),使用新的文檔。 – Aderstedt
選擇全部,格式,字體,克恩,使用默認/無 - 它會改變什麼嗎?我沒有TextEdit和自定義繪製的屬性字符串之間的區別。那麼NSTextFieldCell和NSButtonCell怎麼樣,它們對你來說也不好? – hamstergene