我有一个可以显示网站地址的字符串。我想将网站地址显示为链接。我该怎么做呢? 实施例
label.text = "Hello and welcome to stackoverflow. The website is https://stackoverflow.com/questions/ask"
let input = label.text
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: input!, options: [], range: NSRange(location: 0, length: (input?.utf16.count)!))
for match in matches {
guard let range = Range(match.range, in: input!) else { continue }
let url = input![range]
print(url)
}
我可以打印https://stackoverflow.com/questions/ask但是,我不知道如何将其转换为链接,同时将其他文本保留在字符串中。
答案 0 :(得分:0)
您可以将NSAttributedString用于此
let attributedString = NSMutableAttributedString(string: ". The website is")
attributedString.addAttribute(.link, value: "https://stackoverflow.com/questions/ask", range: NSRange(location: 19, length: 55))
textView.attributedText = attributedString
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
UIApplication.shared.open(URL, options: [:])
return false
}
答案 1 :(得分:0)
这很简单。
我将UILabel改为UITextView。然后,它会收集所有电子邮件,URL等。
在“属性”检查器中 我在数据检测器中添加(点击)电话号码,链接和地址。 然后取消选择可编辑并保持可选择激活。