Aggiornamento: da ios10,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
A partire dal iOS 7e Later UITextViewha il metodo delegato:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange *NS_DEPRECATED_IOS(7_0, 10_0, "Use textView:shouldInteractWithURL:inRange:forInteractionType: instead");*
per intercettare i clic sui link. E questo è il modo migliore per farlo.
Per ios6e prima un buon modo per farlo è creare sottoclassi UIApplicatione sovrascrivere il file-(BOOL)openURL:(NSURL *)url
@interface MyApplication : UIApplication {
}
@end
@implementation MyApplication
-(BOOL)openURL:(NSURL *)url{
if ([self.delegate openURL:url])
return YES;
else
return [super openURL:url];
}
@end
Dovrai implementare openURL:nel tuo delegato.
Ora, per fare in modo che l'applicazione inizi con la tua nuova sottoclasse di UIApplication, individua il file main.m nel tuo progetto. In questo piccolo file che avvia la tua app, di solito c'è questa riga:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Il terzo parametro è il nome della classe per la tua applicazione. Quindi, sostituendo questa riga per:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Questo ha funzionato per me.