2017-11-28 23 views
0

UITextFieldにデータ検出機能を有効にして、URL、電子メール、電話番号などを検出しました。データ検出器の改行(URL、電子メール、電話番号)

enter image description here

時にはURLや電話番号をクリックするのは難しいです。私は、データ検出器の種類(URL /番号/電子メール/など)の前後に改行を追加する簡単な方法があるので、触れるのが少し難しいと思っていました。文字列がデータ検出器タイプであるかどうかを検出するにはどうすればよいですか?

または、URLをタップ可能にする良い方法はありますか?

答えて

0

あなたがTextViewの上ご起因する文字列を設定した後、次の操作を行います

//Change UIFont to your font and size 
if let attributedString = textView.attributedText, let font = UIFont(name: "YourFontName", size: 14) { 

    let newString = NSMutableAttributedString(attributedString: attributedString) 

    let types: NSTextCheckingResult.CheckingType = [.link, .phoneNumber, .address, .date, .transitInformation] 

    let linkDetector = try? NSDataDetector(types: types.rawValue) 
    let range = NSRange(location:0,length: attributedString.length) 
    linkDetector?.enumerateMatches(in: attributedString.string, options: [], range: range, using: { 
     (match : NSTextCheckingResult?, flags : NSRegularExpression.MatchingFlags, stop) in 

     if let matchRange = match?.range { 
      newString.removeAttribute(NSFontAttributeName, range: matchRange) 
      newString.addAttribute(NSFontAttributeName, value: font, range: matchRange) 
     } 
    }) 

    textView.attributedText = newString 
} 
関連する問題