NSTextView and highlighting links

别说谁变了你拦得住时间么 提交于 2019-12-13 05:12:36

问题


I'm using a NSTextView with an NSAttributedString to display some links using the NSLinkAttributeName. I'm styling those links using the setLinkTextAttributes: method of NSTextView. However, I would like to give the user a visual feedback when he clicks the link, for example by changing the color of the link while the user pressed down the left mouse button. Is there an easy way to do that or do I have to use NSTextAttachment?


回答1:


I don't think there is an easy way to do this if you want it to happen on the mouseDown event. If you can wait until the click is completed, then you can do it using the text view delegate method, textView:clickedOnLink:atIndex: to get the index of the clicked on link. You could then use that index to pass to the text storage method, attributesAtIndex:effectiveRange: to get the range of the link and finally, use setAttributes:range: to make whatever changes you want to the attributes of the link.

If you really need to do it on the mouseDown, then you'll have to subclass the text view and override mouseDown and maybe use something like characterIndexForPoint: to find out whether you've clicked on a link and respond as above.



来源:https://stackoverflow.com/questions/9975254/nstextview-and-highlighting-links

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!