使用NSDataDetector就像Apple的Notes应用程序

时间:2015-07-31 04:46:31

标签: ios swift nsdatadetector

我试图找到几种不同的数据类型,包括日期,地址,电话号码和链接。我已经能够找到它们,但我希望能够通过下划线和更改颜色来格式化它们。到目前为止,这是我的代码。

func detectData() {
        let text = self.textView.text
        let types: NSTextCheckingType = .Date | .Address | .PhoneNumber | .Link
        var error: NSError?
        let detector = NSDataDetector(types: types.rawValue, error: &error)
        var dataMatches: NSArray = [detector!.matchesInString(text, options: nil, range: NSMakeRange(0, (text as NSString).length))]

        for match in dataMatches {

我在想我应该首先从循环中得到每个结果 1)将它们变成字符串2)格式化它们。

第一个问题。如何将格式化的字符串放回到同一位置的UITextView中?

第二个问题。我正在考虑创建一个像这样的开关

switch match {
                case match == NSTextCheckingType.date

但是现在我有一个特定类型的NSTextCheckingType,我需要做些什么来使它们具有我想要的功能? (例如,拨打电话号码,打开地址地图,创建日期事件)

1 个答案:

答案 0 :(得分:2)

要执行Notes,您只需在文本视图中设置dataDetectorTypes属性即可。就这样!没有涉及NSDataDetector。