On Mar 31, 2012, at 6:09 PM, Graham Cox <graham....@bigpond.com> 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 (Cocoa-dev@lists.apple.com) 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com