В нашем приложении у нас есть исходящий номеронабиратель VOIP-телефона.
Я хотел бы обнаружить числа в строке и добавить настраиваемое действие, чтобы вместо поведения по умолчанию при открытии родной номеронабирателя оноперейдите к нашей собственной программе набора номера в приложении и предварительно заполните выбранное число.
Моими первыми мыслями было получить тело сообщения в виде цепочки слов и проверить каждое слово, чтобы увидеть, является ли оно числом.а затем создать атрибутивную строку.Но я изо всех сил пытаюсь понять, как я могу вернуть атрибутированную строку обратно в строку и что я бы даже указал, чтобы открыть указанный экран с предварительно заполненным числом.
Мне известен 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
}