Iphone 如何检测用户单击超链接
我的应用程序将显示一些文本,我想让超链接能够被点击。我对这个功能有一些疑问Iphone 如何检测用户单击超链接,iphone,objective-c,Iphone,Objective C,我的应用程序将显示一些文本,我想让超链接能够被点击。我对这个功能有一些疑问 如何解析文本以了解这是一个链接 一旦用户单击链接,我不希望操作系统切换到Safari并打开链接,这非常糟糕,因为用户无法返回到我的应用程序。所以我想在我的应用程序中打开链接。只要用户点击链接,我的应用程序就会显示一个视图来显示网页内容。如有任何建议,将不胜感激 您可能希望将UILabel子类化。更改文本时,让它尝试查看文本是否为超链接,如果是,请将其设置为启用用户交互,并将文本颜色更改为蓝色。当用户点击链接时,向主视图控
如果您的文本可以格式化为带有超链接(
标记)的html,则可以使用UIWebView来显示它
当用户点击链接时,将调用UIWebViewDelegate的
webView:shouldStartLoadWithRequest:navigationType:
方法。通常,您会让控制器实现此方法,并将UIWebView的委托设置为控制器。如果您的文本可以格式化为带有超链接(
标记)的html,则可以使用UIWebView来显示它
当用户点击链接时,将调用UIWebViewDelegate的
webView:shouldStartLoadWithRequest:navigationType:
方法。通常,您会让控制器实现此方法,并将UIWebView的委托设置为控制器。您将要签出一个名为的Github项目
它将自动检测.text
属性中的所有URL
您可以这样使用它:
LRLinkableLabel *label = [[LRLinkableLabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 20.0)];
label.delegate = self;
label.text = @"Check out http://dundermifflin.com to find some great paper deals!";
然后确保self
实现此方法:
- (void) linkableLabel:(LRLinkableLabel *)label clickedButton:(UIButton *)button forURL:(NSURL *)url {
[[UIApplication sharedApplication] openURL:url];
}
您还可以使用linkColor
和textColor
属性来配置标签的外观。从这一点上,您可以像使用任何其他UILabel一样使用它
完成所有操作后,请记住将委托
设置为nil
,以确保所有内容都已清理完毕
希望这有帮助。您将要查看一个名为的Github项目 它将自动检测
.text
属性中的所有URL
您可以这样使用它:
LRLinkableLabel *label = [[LRLinkableLabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 20.0)];
label.delegate = self;
label.text = @"Check out http://dundermifflin.com to find some great paper deals!";
然后确保self
实现此方法:
- (void) linkableLabel:(LRLinkableLabel *)label clickedButton:(UIButton *)button forURL:(NSURL *)url {
[[UIApplication sharedApplication] openURL:url];
}
您还可以使用linkColor
和textColor
属性来配置标签的外观。从这一点上,您可以像使用任何其他UILabel一样使用它
完成所有操作后,请记住将委托
设置为nil
,以确保所有内容都已清理完毕
希望这能有所帮助。UIWebView可以同时完成这两件事。您还可以查看UITextView的dataDetectorTypes,它将为您找到超链接。UIWebView将完成这两项工作。您还可以查看UITextView的dataDetectorTypes,它将为您找到超链接。