我的macOS应用程序中有一个窗口,其中包含按钮和带超链接的文本。我使用NSAttributedString在NSTextView中创建了超链接。
问题是:我是否可以允许用户在文本中的按钮和链接之间移动焦点,以便他们可以在不使用鼠标的情况下输入/空格链接。基本上,问题是如何在NSTextView的文本中将firstResponder从按钮移动到链接?
答案 0 :(得分:1)
NSTextView不支持以这种方式关注文本区域。如果要在自定义文本视图中实现某种焦点,则必须处理焦点本土化方法(例如,按Tab键),手动解析文本视图以查找要关注的区域,循环到下一个,并绘制某种突出显示,无论是使用自定义绘图,使用文本本身的临时属性,还是甚至只是移动选择范围。无论哪种方式,您都必须完成所有输入处理并且"关注"移动自己。
至于仅在文本视图中具有可点击链接,链接的文本范围需要具有NSLinkAttributeName属性,NSURL作为值。参见:
https://developer.apple.com/library/content/qa/qa1487/_index.html http://travisjeffery.com/b/2013/11/url-linking-in-a-non-editable-nstextview/