如何检测 URL 是不是已粘贴/输入到 UITextView? Swift iOS [关闭]
Posted
技术标签:
【中文标题】如何检测 URL 是不是已粘贴/输入到 UITextView? Swift iOS [关闭]【英文标题】:How to detect if a URL has been pasted/typed into a UITextView? Swift iOS [closed]如何检测 URL 是否已粘贴/输入到 UITextView? Swift iOS [关闭] 【发布时间】:2021-04-15 21:04:37 【问题描述】:使用 Swift,我如何检测用户将 URL 输入/粘贴到 UITextView 中?
【问题讨论】:
这能回答你的问题吗? how to know when text is pasted into UITextView @Scott,部分回答了这个问题,但前提是有人要粘贴一个网址。如果有人输入了一个 url,我们如何检测呢? 【参考方案1】:如果您不关心是否粘贴或键入文本,您可以使用此解决方案:
func textViewDidChange(textView: UITextView)
if (urlExists(textView.text))
// URL exists...
func urlExists(_ input: String) -> Bool
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)
return true
return false
如果您需要知道它已粘贴,请使用它。 如果有人粘贴,它将不止一个字符。我们应该避免使用 UIPasteboard,因为它可能会在这种情况下冻结并向用户显示不必要的消息。
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
if text.count > 1
// paste scenario
if (urlExists(text.text))
// URL exists...
else
//normal typing
return true
【讨论】:
以上是关于如何检测 URL 是不是已粘贴/输入到 UITextView? Swift iOS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Django 是不是有模板标签可以检测 URL 并将其转换为超链接?