获取字体的最大高度

Jos*_*ews 0 fonts cocoa rendering objective-c

所以我有一个NSFont,我想获得任何角色的最大尺寸,即.音高和字母高度.[font maximumAdvancement]似乎返回{pitch,0}的NSSize,所以这没有帮助.绑定rect似乎也不起作用,并且jwz类似的创建bezier路径,附加字形和获取边界矩形的问题的建议也让我回到{0,0}.什么给这里?

更新:我用来获得bezier大小的代码是这样的:

NSBezierPath *bezier = [NSBezierPath bezierPath];
NSGlyph g;
{
    NSTextStorage *ts = [[NSTextStorage alloc] initWithString:@" "];
    [ts setFont:font];
    NSLayoutManager *lm = [[NSLayoutManager alloc] init];
    NSTextContainer *tc = [[NSTextContainer alloc] init];
    [lm addTextContainer:tc];
    [tc release]; // lm retains tc
    [ts addLayoutManager:lm];
    [lm release]; // ts retains lm
    g = [lm glyphAtIndex:0];
    [ts release];
}
NSPoint pt = {0.0f};
[bezier moveToPoint:pt];
[bezier appendBezierPathWithGlyph:g inFont:font];
NSRect bounds = [bezier bounds];
Run Code Online (Sandbox Code Playgroud)

Pet*_*sey 6

空格字符的字形没有任何子路径,因此它的边界当然有大小NSZeroSize.试试吧-[NSFont boundingRectForFont].