1

UITextView fournit un outil très utile fonctionnalité Détecteurs de données, qui prend en charge:Détecteurs de données de UITextView options et texte de apperance

  • détection Numéro de téléphone
  • détection détection d'adresse de rue URL
  • Détection d'événements
  • numéro de suivi de l'expédition détection
  • de détection de numéro de vol et
  • Les utilisateurs d'information peut vouloir regarder jusqu'à

J'ai préparé un petit échantillon pour le tester, et je viens de vous poser une question:

Comment puis-je changer l'apparence du texte détecté?

Les modifications appliquées à tintColor et/ou linkTextAttributes semble fonctionner que pour l'URL, email et numéro de téléphone. Les modifications appliquées à tintColor ou linkTextAttributes propriétés de UITextView ne semble pas avoir d'effet sur des articles comme événement/date ou heure, adresse, numéro d'expédition, et numéro de vol.

UITextView's Data Detectors option sample

+0

Vous devriez probablement signaler un problème à bugreport.apple.com. Si linkTextAttributes ne s'applique pas aux nouveaux liens "légers" dans iOS 10, il devrait probablement y avoir un moyen de les personnaliser. –

+0

Bug déposé. Référence # 29660476. – Mustafa

+0

@Mustafa Où avez-vous réussi à résoudre ce problème? – unniverzal

Répondre

0

Il semble y avoir qu'un seul moyen à l'aide NSDataDetector.

Exemple de la détection de la date est ci-dessous.

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