0
希望這很簡單。基本上,我正在將一些文本繪製到NSView上,並需要知道正在繪製的字形的「物理」高度和寬度。用CGContextShowGlyphsAtPoint繪製文本 - 如何獲取字體大小?
字體是固定寬度所以不需要擔心字距調整,所有我需要做的是確保每個字形是它的「空間」
內水平,垂直居中這不是實際代碼,但我已經用一種方式重新編寫它,以便更容易理解我想要實現的目標。
CGFontRef myFontRef = CGFontCreateWithDataProvider(myFontDataProvider);
CGContextSetFont(thisContext, myFontRef);
CGFloat fontSize = 1.0; //will be changeable later
CGContextSetFontSize(thisContext, fontSize);
CGRect charBounds = CGRectMake(x, y, widthPerChar, heightPerChar);
//paint charBounds with background colour
CGFloat textX = x + 2;
CGFloat textY = y + 5;
CGContextShowGlyphsAtPoint(thisContext, textX, textY, (CGGlyph *)displayedString, 1);
如果我能夠計算顯示的字形的寬度,可以很容易計算出textX和textY應該是什麼。
在此先感謝任何願意幫助的人。
儘管存在NSView,但這並不是真正的可可或Objective-C(還)。增加了通用的`osx`標籤。 – NSGod 2011-01-31 00:42:17