2015-07-31 9 views
2

Я пытаюсь найти несколько разных типов данных, включая даты, адреса, номера телефонов и ссылки. Я уже могу найти их, но я хочу, чтобы их можно форматировать, подчеркивая и меняя их цвет. Это мой код до сих пор.Использование NSDataDetector так же, как приложение Notes от Apple

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

Чтобы сделать то, что Notes вам нужно, просто установить свойство dataDetectorTypes в текстовое представление. Это все! Нет NSDataDetector.

+0

О, мой ... Я думаю, NSDataDetector предназначен для более сфокусированного поиска/настройки. Спасибо, легко исправить :) –