boundingRectWithSize:Option: and height constraint
boundingRectWithSize:Option: and height constraint
- Subject: boundingRectWithSize:Option: and height constraint
- From: Bill Cheeseman <email@hidden>
- Date: Wed, 11 Nov 2009 08:53:37 -0500
Over the past 5 years, according to Google, many people have asked why -[NSAttributedString boundingRectWithSize:options] does not honor the proposed height constraint, but nobody has posted the answer. Can somebody explain this to me?
The bounding rect of myMutableAttributedString is {{0, 0}, {450.117, 1285}}, when the width is constrained to 486 and the height is not contrained (i.e., height is set to 0.0). When I eyeball the string in its window on the screen, these dimensions appear to be about right.
With a printing page height of 612, it should take 3 pages to print. To get the bounding rect for the first page to print, I run this code fragment in my printing NSView object:
NSSize proposedSize = NSMakeSize(486, 612);
NSLog(@"proposedSize: %@", NSStringFromSize(proposedSize));
NSRect pageRect = [myMutableAttributedString boundingRectWithSize:proposedSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading | NSStringDrawingDisableScreenFontSubstitution];
NSLog(@"pageRect: %@", NSStringFromRect(pageRect));
These values are logged in the console:
proposedSize: {486, 612]
pageRect: {{0, 0}, {450.117, 1285}}
Why isn't pageRect being returned as something close to {{0, 0}, {450.117, 612}? -- where the 612 page height would of course be expected to come out a little less than 612 to accommodate the vertical line heights.
Including NSStringDrawingTruncatesLastVisibleLine in options doesn't change anything.
The documentation leaves me with the impression that the whole point of this method is to return the largest rect that will honor the size constraint by cutting off the text at the height constraint while it is being laid out within the width constraint. Have I misunderstood?
--
Bill Cheeseman
email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden