gpt4 book ai didi

objective-c - 获取字体的最大高度

转载 作者:行者123 更新时间:2023-12-03 17:29:57 25 4
gpt4 key购买 nike

所以我有一个 NSFont,我想获得任何字符的最大尺寸,即。间距和字母高度。 [font maxAdvancement] 似乎返回 {pitch, 0} 的 NSSize,所以这没有帮助。边界矩形似乎也不起作用,来自 jwz's similar question 的建议创建贝塞尔曲线路径、附加字形并获取边界矩形也会返回 {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];

最佳答案

空格字符的字形没有任何子路径,因此它的边界大小当然是NSZeroSize。尝试使用 -[NSFontboundingRectForFont] 来代替。

关于objective-c - 获取字体的最大高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com