UITextView提供了非常有用的数据检测器功能,支持:
我准备了一个小样本来测试它,我只有一个问题:
如何更改检测到的文字的外观?
应用于tintColor
和/或linkTextAttributes
的更改似乎仅适用于网址,电子邮件和电话号码。应用于UITextView的tintColor
或linkTextAttributes
属性的更改似乎不会对事件/日期或时间,地址,货件编号和航班号等项目产生任何影响。
答案 0 :(得分:0)
似乎只有一种方法使用NSDataDetector。
日期检测的样本如下。
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