Czy istnieje odpowiednia metoda w AppKit (dla Cocoa na Mac OS X), która robi to samo, co UIKit's [NSString sizeWithFont:constrainedToSize:]
?UIKit [NSString sizeWithFont: constrainedToSize:] w AppKit
Jeśli nie, w jaki sposób mogę uzyskać ilość miejsca potrzebną do renderowania określonego ciągu ograniczonego do szerokości/wysokości?
Aktualizacja: Poniżej znajduje się fragment kodu, którego używam, a którego oczekuję, że przyniesie oczekiwane wyniki.
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
[NSFont systemFontOfSize: [NSFont smallSystemFontSize]], NSFontAttributeName,
[NSParagraphStyle defaultParagraphStyle], NSParagraphStyleAttributeName,
nil];
NSSize size = NSMakeSize(200.0, MAXFLOAT);
NSRect bounds;
bounds = [@"This is a really really really really really really really long string that won't fit on one line"
boundingRectWithSize: size
options: NSStringDrawingUsesFontLeading
attributes: attributes];
NSLog(@"height: %02f, width: %02f", bounds.size.height, bounds.size.width);
Spodziewam się, że szerokość wyjścia będzie 200, a wysokość byłaby czymś większym niż wysokość pojedynczej linii, jednak produkuje:
height: 14.000000, width: 466.619141
Dzięki!
duplikat: http://stackoverflow.com/questions/ 2349692/whats-the-equivalent-sizewithfont-method-for-the-mac. Nikt nie szuka w tych dniach? –
Szukałem, ale, zdumiewająco, nie znalazłem tego. Bez względu na sizeWithAttributes: nie, afaik, wsparcie ograniczające szerokość. –
Nie jest to duplikat z powodu elementu constraint, którego brakuje w tym drugim pytaniu. –