1

UITextView eine sehr nützliche Data Detectors Funktionalität bietet, dass unterstützt:UITextView Data Detectors Optionen und Text Apperance

  • Telefonnummer Erkennung
  • URL Adresserkennung Straße Erkennung
  • Ereigniserkennung
  • Sendungsverfolgungsnummer Erkennung
  • Flugnummer Erkennung und
  • Informationen Benutzer möchten möglicherweise suchen up

bereitete ich eine kleine Probe zu testen, und ich habe nur eine Frage:

Wie kann ich das Aussehen des erkannten Textes zu ändern?

Änderungen angewendet tintColor und/oder linkTextAttributes erscheint nur für URL zu arbeiten, E-Mail und Telefonnummer. Änderungen, die auf die Eigenschaften tintColor oder linkTextAttributes von UITextView angewendet wurden, scheinen KEINE Auswirkungen auf Elemente wie Ereignis/Datum oder Uhrzeit, Adresse, Sendungsnummer und Flugnummer zu haben.

UITextView's Data Detectors option sample

+0

Sie sollten wahrscheinlich einen Bug über Bugreport.apple.com. Wenn linkTextAttributes nicht auf die neuen "Light" -Links in iOS 10 zutrifft, sollte es wahrscheinlich eine Möglichkeit geben, sie anzupassen. –

+0

Fehler eingereicht. Referenz # 29660476. – Mustafa

+0

@Mustafa Wo können Sie dieses Problem lösen? – unniverzal

Antwort

0

Es scheint mit NSDataDetector nur einen Weg zu sein.

Beispiel für die Datumserkennung ist unten.

let wAS = aTextView.attributedText.mutableCopy() as! NSMutableAttributedString 

let wDateResult = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.date.rawValue).matches(
    in: wAS.string 
, options: NSRegularExpression.MatchingOptions(rawValue: 0) 
, range: NSMakeRange(0, wAS.string.characters.count) 
) 
for w in wDateResult { 
    wAS.addAttributes([ NSForegroundColorAttributeName : UIColor.red ], range: w.range) 
} 

aTextView.attributedText = wAS 
Verwandte Themen