【问题标题】:NSTextView and highlighting linksNSTextView 和高亮链接
【发布时间】:2012-04-16 01:03:23
【问题描述】:

我使用NSTextViewNSAttributedString 来显示一些使用NSLinkAttributeName 的链接。我正在使用NSTextViewsetLinkTextAttributes: 方法对这些链接进行样式设置。但是,我想在用户单击链接时给他一个视觉反馈,例如通过在用户按下鼠标左键时更改链接的颜色。有没有简单的方法可以做到这一点,还是我必须使用NSTextAttachment

【问题讨论】:

  • 您总是可以只使用WebView。然后,您可以随意设置链接的样式。
  • 出于性能原因,我不想使用WebView,因为同时可见多个NSTextView

标签: objective-c macos cocoa nstextview


【解决方案1】:

如果您希望它发生在 mouseDown 事件上,我认为没有一种简单的方法可以做到这一点。如果您可以等到点击完成,那么您可以使用文本视图委托方法 textView:clickedOnLink:atIndex: 来获取点击链接的索引。然后,您可以使用该索引传递给文本存储方法 attributesAtIndex:effectiveRange: 以获取链接的范围,最后使用 setAttributes:range: 对链接的属性进行任何更改。

如果您真的需要在 mouseDown 上执行此操作,那么您将必须对文本视图进行子类化并覆盖 mouseDown,并且可能使用类似 characterIndexForPoint: 的东西来确定您是否单击了链接并按上述方式进行响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2012-03-22
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多