Mise à jour: à Partir de iOS 7 et les versions Ultérieures UITextView a le délégué de la méthode:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
pour intercepter les clics des liens. Et c'est la meilleure façon de le faire.
Pour iOS 6 et les versions antérieures, une belle façon de le faire est de subclassing UIApplication
et d'écraser l' -(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
Vous aurez besoin de mettre en oeuvre openURL:
dans votre délégué.
Maintenant, pour avoir le démarrage de l'application avec votre nouvelle sous-classe d' UIApplication
, recherchez le fichier principal.m dans votre projet. Dans ce petit fichier qui démarre votre application, il est généralement de cette ligne:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Le troisième paramètre est le nom de la classe pour votre application. Ainsi, le remplacement de cette ligne:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Cela a fait l'affaire pour moi.