Aggiornamento: da ios10,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
A partire dal iOS 7e Later UITextView
ha 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 UIApplication
e 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.