Re: boundingRectForGlyphRange is very inaccurate
Re: boundingRectForGlyphRange is very inaccurate
- Subject: Re: boundingRectForGlyphRange is very inaccurate
- From: Ken Thomases <email@hidden>
- Date: Mon, 06 Mar 2017 10:26:29 -0600
On Mar 6, 2017, at 3:41 AM, Gerriet M. Denkmann <email@hidden> wrote:
>
> I am trying to get bounding rects in a TextView:
>
> NSRange glyphRange = [ layoutManager glyphRangeForCharacterRange: someCharRange
> actualCharacterRange: NULL
> ];
> NSTextContainer *container = [ layoutManager textContainerForGlyphAtIndex: glyphRange.location
> effectiveRange: NULL
> ];
> CGRect rect = [ layoutManager boundingRectForGlyphRange: glyphRange inTextContainer: container ];
>
> The problem:
>
> using the ruler of the TextView I know the actual x-range of someCharRange.
> But the rect is much bigger on both sides.
> E.g. selecting a string which occupies 1 cm from 19 cm to 20 cm on the ruler I get a rect : 18.16 + 3.63 = 21.79
>
> The error (not very surprisingly) depends on the font used.
>
> How can I get a rectangle from my string which closely resembles what is seen on the screen?
Try using -enumerateEnclosingRectsForGlyphRange:withinSelectedGlyphRange:inTextContainer:usingBlock:. In particular, if you want rectangles which match how selection looks, pass a valid range for selectedRange.
Regards,
Ken
_______________________________________________
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