iOS Rileva automaticamente collegamenti, indirizzi, date e altro

Esempio

UITextView ha integrato il supporto per rilevare automaticamente una varietà di dati. I dati che possono essere rilevati automaticamente includono:

enum {
   UIDataDetectorTypePhoneNumber   = 1 << 0,
   UIDataDetectorTypeLink          = 1 << 1,
   UIDataDetectorTypeAddress       = 1 << 2,
   UIDataDetectorTypeCalendarEvent = 1 << 3,
   UIDataDetectorTypeNone          = 0,
   UIDataDetectorTypeAll           = NSUIntegerMax
};

Abilitazione del rilevamento automatico

// you may add as many as you like by using the `|` operator between options
textView.dataDetectorTypes = (UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber);

Se abilitato, il testo verrà visualizzato come collegamento ipertestuale su UITextView

Dati cliccabili

Per consentire il clic sul collegamento (che comporterà azioni diverse a seconda del tipo di dati) è necessario assicurarsi che UITextView sia selezionabile ma non modificabile e che l'interazione dell'utente sia abilitata

textView.editable = NO;
textView.selectable = YES;
textView.userInteractionEnabled = YES; // YES by default