使文本与UITextView中可单击的NSRegularExpression匹配

时间:2015-01-24 13:50:49

标签: ios regex swift uitextview nsregularexpression

我有UITextView并使用NSRegularExpression。我在文本视图中查找了名称。因此,我可以使用以下代码突出显示匹配项:

for match in matches as [NSTextCheckingResult] {
    let matchRange = match.range
    attributedText.addAttribute(NSStrokeColorAttributeName, value: UIColor.blueColor(), range:  matchRange)
}

我想让它可点击并将其文本传递给新的视图控制器。或者可以将其更改为具有相同文本的UIButton,并将segue添加到新视图控制器。我不确定如何正确地做到这一点。

2 个答案:

答案 0 :(得分:0)

UITextView并没有真正的功能。您可以尝试使用UIButton方法,但是您会遇到包含多行的链接。

两种可能的解决方案:

  1. 您可以强制其网址处理功能执行您想要的操作 - 请参阅this question。这取决于您的NSRegularExpression
  2. 您可能希望尝试使用TTTAttributedLabel或类似的第三方库替换您的文本视图,以便为您处理此问题。我认为这是最灵活的选择,也是我推荐的方法。

答案 1 :(得分:0)

对于未来的googlers,您可以使用 NSLinkAttributeName

attributedText.addAttribute(NSLinkAttributeName, value: "\(your_value)", range: matchRange)