我想通過繪製一些文本到NSView
通過CGContextShowTextAtPoint()
。這很好,直到我覆蓋(BOOL)isFlipped
以在我的NSView
子類中返回YES
,以便將原點定位在左上方以進行繪製。文本吸引了預期的區域,但是這些字母都是倒置的。我也嘗試了翻轉我的CGContext(翻譯上下文的高度)(理論上至少)。CGContextShowTextAtPoint渲染顛倒
e.x.
// drawRect:
CGContextScaleCTM(theContext, 1, -1);
CGContextTranslateCTM(theContext, 0, -dirtyRect.size.height);
這產生了相同的結果。
對類似問題的許多建議都指向修改文本矩陣。我已經將文本矩陣設置爲單位矩陣,對其進行了額外的反演,並分別完成了這兩個操作。所有這些解決方案都導致文本的渲染效果更加陌生(通常只是出現一個片段)。
我看到的另一個建議是簡單地避開此功能,以支持其他繪圖文本方式(例如NSString
的s )然而,這主要是在C++/C中完成的,如果可能的話,我想保持這些級別。
任何建議非常感謝,我很樂意發佈更多的代碼,如果需要的話。
感謝, 山姆
謝謝你的建議,但命令似乎沒有影響。直接使用您的代碼導致繪圖在屏幕外渲染並將NSHeight(...)更改爲NSHeight(...)導致正確的原點更改,但文本問題依然存在。 – Sam