したがって、NSFontがあり、任意の文字の最大サイズを取得したいと思います。ピッチと文字の高さ。[font maximumAdvancement]は{pitch、0}のNSSizeを返すように見えるので、それは役に立ちません。バウンディング長方形も機能していないようです。ベジェパスを作成し、グリフを追加し、バウンディング長方形を取得するという、 jwzの同様の質問からの提案も、{0、0}を返します。ここで何が得られますか?
更新:ベジェサイズを取得するために使用しているコードは次のとおりです。
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];