Оновлення: Від ios10,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
З ios7і пізніше UITextView
має метод делегата:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange *NS_DEPRECATED_IOS(7_0, 10_0, "Use textView:shouldInteractWithURL:inRange:forInteractionType: instead");*
щоб перехопити кліки до посилань. І це найкращий спосіб зробити це.
Для ios6а раніше хороший спосіб зробити це - підкласифікацією UIApplication
та перезаписом-(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
Вам потрібно буде реалізувати openURL:
у своєму делегаті.
Тепер, щоб програма почалася з вашого нового підкласу UIApplication
, знайдіть файл main.m у вашому проекті. У цьому невеликому файлі, який завантажує додаток, зазвичай є такий рядок:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Третій параметр - назва класу для вашої програми. Отже, замінивши цей рядок на:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
Це зробило для мене трюк.