一尘不染

带有超链接文本的UITextView

swift

对于不可编辑的UITextView,我想在iOS9 +中嵌入这样的文本:

只需单击此处进行注册

我可以创建一个函数并处理文本,但是有没有更简单的方法?

我看到我可以使用NSTextCheckingTypeLink,因此在Interface Builder中无需“ click here”部分就可以单击文本:

只需http://example.com进行注册

如果相关,我正在使用Xcode 8和Swift 3。


阅读 439

收藏
2020-07-07

共1个答案

一尘不染

设置isEditable = false或文本视图将在用户点击时进入文本编辑模式。

Swift 4及更高版本

let attributedString = NSMutableAttributedString(string: "Just click here to register")
let url = URL(string: "https://www.apple.com")!

// Set the 'click here' substring to be the link
attributedString.setAttributes([.link: url], range: NSMakeRange(5, 10))

self.textView.attributedText = attributedString
self.textView.isUserInteractionEnabled = true
self.textView.isEditable = false

// Set how links should appear: blue and underlined
self.textView.linkTextAttributes = [
    .foregroundColor: UIColor.blue,
    .underlineStyle: NSUnderlineStyle.single.rawValue
]
2020-07-07