gpt4 book ai didi

ios - 数字检测中的 Swift IOS 自定义操作

转载 作者:行者123 更新时间:2023-11-28 14:05:54 28 4
gpt4 key购买 nike

在我们的应用程序中,我们有一个出站 VOIP 电话拨号器。

我想检测字符串中的数字并添加自定义操作,这样它就不会打开 native 拨号器的默认行为,而是转到应用程序中我们自己的拨号器并预填充所选号码。

我的第一个想法是将消息的正文放入一个字符串数组中,并检查每个单词以查看它是否是一个数字,然后创建一个属性字符串。但是我正在努力理解如何将属性字符串恢复为字符串,以及我什至会指定什么来打开带有预填充数字的所述屏幕。

我知道 NSDataDetector 可以列出在字符串中找到的数字,但我对如何使用可点击操作替换那些特定部分并将其作为字符串返回的方法感到困惑。

如果有人对此有类似的经历,那么任何帮助将不胜感激?

注意:此消息的正文显示在 UILabel 控件中。

更新

这就是我到目前为止的...

    func AddNumberLink() -> String {    
let body = self
let wordsInBody = body.components(separatedBy: .whitespaces)

for i in 0..<wordsInBody.count {
var word = wordsInBody[i]
if word.isTelephoneNumeric {
let attributedString = NSMutableAttributedString(string:word)
attributedString.addAttribute(NSAttributedStringKey.link, value:"https://www.google.com",range: NSRange(location: 0, length: word.count))



attributedString.addAttribute(NSAttributedStringKey.foregroundColor,value: UIColor.red, range: NSRange(location:0, length: word.count))
word = attributedString.string
}
}
return body
}

最佳答案

NSDataDetector 为您提供数字的范围。现在,创建一个(可变的)属性字符串,并为每个范围添加一个指向相应数字 URL 的链接(NSAttributedString.Key.link: urlString)。然后,在 UITextView 中显示文本并添加委托(delegate)。在委托(delegate)中,实现 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool在此功能中,您可以决定采取何种操作是合适的。

关于ios - 数字检测中的 Swift IOS 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52987261/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com