Erhalten der maximalen Höhe einer Schriftart
-
04-07-2019 - |
Frage
So habe ich eine NSFont, und ich möchte die maximalen Abmessungen für beliebige Zeichen erhalten, das heißt. die Tonhöhe und Buchstabenhöhe. [Font maximumAdvancement] scheint eine NSSize von {Tonhöhe, 0} zurück, so dass hilft nicht. rect Bounding scheint nicht zu funktionieren, und der Vorschlag von jwz die ähnliche Frage einer Schaffung Bezier-Pfad, eine Glyphe anhängt und bekommen die begrenzende rectange gibt mir auch zurück {0, 0}. Was gibt hier?
UPDATE : Der Code, den ich mit der Bezier-Größe zu erhalten, ist dies:
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];
Lösung
Die Glyphe für das Leerzeichen hat keine Subpfade, so natürlich seine Grenzen Größe NSZeroSize
haben. Versuchen Sie -[NSFont boundingRectForFont]
statt.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow