如何在UITextView上显示可点击的网址/电子邮件/电话号码

时间:2011-05-11 12:42:41

标签: iphone objective-c cocoa-touch uitextview

我收到一个服务器响应作为一个可以包含一些网址或电子邮件地址或电话号码的刺痛,即相同的字符串可以包含所有三个或一个数字和几个网址。没有什么是固定的。

我正在使用UITextView在设备上显示这种刺痛。现在我想要的是这些网址/电子邮件/电话号码显示为超链接,点击这些超链接用户应该能够看到一个网页,如果它的网址,草稿和发送电子邮件,如果它的电子邮件地址或拨打时点击的数字数字超链接

任何人都可以建议我这样做的方法。或者建议使用任何其他可以简化的数据视图

4 个答案:

答案 0 :(得分:18)

设置UITextView的数据检测器类型。有很多选择:

  

UIDataDetectorTypePhoneNumber

     

UIDataDetectorTypeLink

     

UIDataDetectorTypeAddress

     

UIDataDetectorTypeCalendarEvent

     

UIDataDetectorTypeNone

     

UIDataDetectorTypeAll

所以,在你的情况下,你可能想做:

self.myTextView.dataDetectorTypes = UIDataDetectorTypeAll;

答案 1 :(得分:5)

另请注意,使用NSDataDetectorTypes时,文本视图不可编辑。

让textView成为UITextView的对象,然后设置:

textView.editable = NO;

然后只能检测链接,电话号码,地址等。

答案 2 :(得分:0)

您可以使用UIButton,并将标题更改为URL,电子邮件或电话号码。

使用相应的格式创建自定义UIButton,使其看起来像普通句子(按钮的边缘和背景与视图的背景颜色相同)。

格式化文本,使其看起来像蓝色(并可选择加下划线),如this,以便人们知道它是一个超链接。

答案 3 :(得分:0)

在Interface Builder中添加一个UITextView。无需代码。在“属性”检查器中,取消选中“可编辑”,然后选中“可选”。请检查数据检测器旁边的“电话号码”。应该适用于其他数据类型。请务必编辑“提示颜色”,否则它可能会因为其中没有标签而出现(但您仍然可以触摸以启动)。 (这是一个美丽的世界,如果您以正确的方式看待它!)