我在我的textview中有一个URL,当我们点击这个URL时,它会在默认的Safari中打开这个URL。我想检测这个事件。我也试过this检测点击uitextview上的nsurl
但它不适合我。任何人都可以建议我如何做到这一点。为我提供一个样本。
我的应用程序解析是UIResponder类型。
我在我的textview中有一个URL,当我们点击这个URL时,它会在默认的Safari中打开这个URL。我想检测这个事件。我也试过this检测点击uitextview上的nsurl
但它不适合我。任何人都可以建议我如何做到这一点。为我提供一个样本。
我的应用程序解析是UIResponder类型。
看看这个GitHub上的项目:MSTextView
感谢您的答复。但实际上MSTextView不是一个TextView。它的UIVIEW类型。我已经在我的应用程序中添加了textview,所以现在我不想用MSTEXTVIEW替换所有文本视图。 –
好吧,那么您发布的第一个解决方案有什么问题? – Mat
我在main.m文件中添加了这个,但它不工作。 int retVal = UIApplicationMain(argc,argv,@“MyApplication”,nil); 未调用openlink方法。 [游泳池释放]; return retVal; –
的other answer按预期工作。
创建New File
,选择Objective-C Class
MyApplication
UIApplication
粘贴此代码在.m
文件:
- (BOOL)openURL:(NSURL *)url {
if ([self handleOpenURL:url])
return YES;
else
return [super openURL:url];
}
- (BOOL)handleOpenURL:(NSURL*)url {
NSLog(@"my url handler");
return YES;
}
下次打开你的main.m
第三个参数
return UIApplicationMain(argc, argv, nil, NSStringFromClass([SampleAppDelegate class]));
更改为UIApplication
-subclass名
return UIApplicationMain(argc, argv, @"MyApplication", NSStringFromClass([SampleAppDelegate class]));
我已经试过了。但是当我更改main.m文件时,它显示错误和未编译的应用程序。 –
我已经尝试过自己发布之前,并确保它正在工作。你是如何给自定义的'UIApplication'子类命名的? ......错误在说什么? – 2012-06-17 16:59:57
假设你只需要显示的链接的静态标签,我们在雨云有一个相当强大的归因标签,你可以希望检查出:
http://docs.nimbuskit.info/group___nimbus_attributed_label.html
标签使用CoreText和NSAttributedStrin g,所以它建立在核心Apple技术之上。它像UILabel一样以各种方式行事。下面是实现NIAttributedLabel委托的例子:
更多信息: http://nimbuskit.info/
对不起。我不需要标签。我需要uitextview。 Bcoz我已经完成了申请,所以现在它不可能在所有地方改变。 –
这的副本http://stackoverflow.com/questions/2543967/how-to-intercept-click- on-link-in-uitextview –
@NicolasManzini如果你仔细阅读我的文章,我写了什么。这不适合我。 –
对不起,你是对的。顺便说一下,我认为你能做的最好的就是像我一样使用uiwebview。你会得到更简单的方法来拦截点击,你可以cusomize链接颜色 –