2

UITextView 提供了一个非常有用的数据检测器功能,它支持:

  • 电话号码检测
  • URL检测街道地址检测
  • 事件检测
  • 货件追踪号码检测
  • 航班号检测,以及
  • 信息用户可能想要查找

我准备了一个小样本来测试它,我只有一个问题:

如何更改检测到的文本的外观?

应用于tintColor和/或linkTextAttributes似乎仅适用于 URL、电子邮件和电话号码的更改。应用于UITextViewtintColor或属性的更改似乎对事件/日期或时间、地址、发货编号和航班号等项目没有任何影响。linkTextAttributes

UITextView 的数据检测器选项示例

4

1 回答 1

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
于 2016-12-14T09:47:49.797 回答