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