当用户在 UITextView 中触摸自动检测到的电话链接时,是否可以执行自定义操作。请不要建议改用 UIWebView。
请不要只是重复苹果类引用中的文字 - 当然我已经读过了。
谢谢。
最佳答案
更新:来自 ios10 ,
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
来自 ios7后来 UITextView
有委托(delegate)方法:
- (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
您需要在您的委托(delegate)中实现 openURL:
。
现在,要让应用程序从 UIApplication
的新子类开始,请在项目中找到文件 main.m。在这个引导您的应用程序的小文件中,通常有这一行:
int retVal = UIApplicationMain(argc, argv, nil, nil);
第三个参数是您的应用程序的类名。因此,将这一行替换为:
int retVal = UIApplicationMain(argc, argv, @"MyApplication", nil);
这对我有用。
https://stackoverflow.com/questions/2543967/
相关文章:
iphone - "wait_fences: failed to receive reply: 10
iphone - 是否有记录的方法来设置 iPhone 方向?
objective-c - NSAutoreleasePool 自动释放池是如何工作的?
objective-c - 从 NSString 中删除字符?
objective-c - 容器 View Controller 示例
objective-c - 如何获取 Root View Controller ?
ios - 横向模式下的 iPhone 应用程序,2008 系统