Update: Von ios10,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
Von ios7und später UITextViewhat die Delegatenmethode:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange *NS_DEPRECATED_IOS(7_0, 10_0, "Use textView:shouldInteractWithURL:inRange:forInteractionType: instead");*
um die Klicks auf Links abzufangen. Und das ist der beste Weg, es zu tun.
Zum ios6und früher ist es eine gute Möglichkeit, dies zu tun, indem Sie das unterordnen UIApplicationund überschreiben-(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
Sie müssen openURL:in Ihrem Delegaten implementieren .
UIApplicationUm die Anwendung mit Ihrer neuen Unterklasse von zu starten , suchen Sie die Datei main.m in Ihrem Projekt. In dieser kleinen Datei, die Ihre App bootet, befindet sich normalerweise die folgende Zeile:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Der dritte Parameter ist der Klassenname für Ihre Anwendung. Ersetzen Sie diese Zeile durch:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Das hat den Trick für mich getan.