Re: drawing lines in and NSTextView
Re: drawing lines in and NSTextView
- Subject: Re: drawing lines in and NSTextView
- From: Douglas Davidson <email@hidden>
- Date: Sat, 31 Mar 2012 18:41:08 -0700
On Mar 31, 2012, at 6:09 PM, Graham Cox <email@hidden> wrote:
>
> On 31/03/2012, at 11:08 PM, Koen van der Drift wrote:
>
>> I have an NSTextView to which I want to add some lines that connect
>> certain words. When the text changes, either by editing, or scrolling,
>> that lines should follow the words. I thought about using
>> CoreAnimation, but text in a CATextLayer does not appear to be
>> editable like the text in an NSTextView (is that correct?). So, an
>> alternative could be to override drawViewBackgroundInRect and use
>> NSBezierPaths to draw my lines and I will work on that this weekend.
>>
>> Any thoughts or suggestions I may have overlooked?
>
>
> Seems to me you're focusing on the wrong aspect of the problem. The key to this is to track given words' positions as the text is scrolled/reflowed. If you lay out the text yourself (using NSLayoutManager, for example) this is not hard, but if you leave it to something else, such as NSTextView, it may be a lot harder (though NSTextView has a NSLayoutManager of which you can ask questions).
>
> Drawing the lines once you have those positions is relatively easy - NSBezierPaths will work, and are probably the simplest.
Actually it's pretty easy to just use the text view's layout manager to find out where the words are, and do some additional drawing in your NSTextView subclass. We have some developer examples of this, though I don't have them ready to hand at the moment, and I've discussed this at more than one WWDC text session.
-Doug
_______________________________________________
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