UITextView implement hyper linker

转载 2013年12月03日 19:16:08

用UITextView的dataDetectorTypes属性可完成类似功能
此属性可以设定使电话号码、网址、电子邮件和符合格式的日期等文字变为链接文字。
电话号码点击后拨出电话,网址点击后会用Safari打开,电子邮件会用mail打开,而符合格式的日期会弹出一个ActionSheet,有创建事件,在Calendar中显示,和拷贝三个选项。

  1. enum {
  2.     UIDataDetectorTypePhoneNumber   = 1 << 0,          // Phone number detection
  3.     UIDataDetectorTypeLink          = 1 << 1,          // URL detection   
  4. #if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
  5.     UIDataDetectorTypeAddress       = 1 << 2,          // Street address detection
  6.     UIDataDetectorTypeCalendarEvent = 1 << 3,          // Event detection
  7. #endif   
  8.  
  9.     UIDataDetectorTypeNone          = 0,               // No detection at all
  10.     UIDataDetectorTypeAll           = NSUIntegerMax    // All types
  11. };
  12. typedef NSUInteger UIDataDetectorTypes;

用UITextView的dataDetectorTypes属性可完成类似功能此属性可以设定使电话号码、网址、电子邮件和符合格式的日期等文字变为链接文字。电话号码点击后拨出电话,网址点击后会用Safari打开,电子邮件会用mail打开,而符合格式的日期会弹出一个ActionSheet,有创建事件,在Calendar中显示,和拷贝三个选项。

  1. enum {
  2.     UIDataDetectorTypePhoneNumber   = 1 << 0,          // Phone number detection
  3.     UIDataDetectorTypeLink          = 1 << 1,          // URL detection   
  4. #if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
  5.     UIDataDetectorTypeAddress       = 1 << 2,          // Street address detection
  6.     UIDataDetectorTypeCalendarEvent = 1 << 3,          // Event detection
  7. #endif   
  8.  
  9.     UIDataDetectorTypeNone          = 0,               // No detection at all
  10.     UIDataDetectorTypeAll           = NSUIntegerMax    // All types
  11. };
  12. typedef NSUInteger UIDataDetectorTypes;

以上是UIKit框架中,UIDataDetectors.h文件内关于UIDataDetectorTypes的定义。由定义可以看出,我们可以使用|的关系来指定自己想要的链接化文字的方式。
测试代码:

  1. UITextView *mtextview = [[UITextView alloc] initWithFrame:CGRectMake(550, 360, 200, 200)];
  2.         mtextview.backgroundColor = [UIColor grayColor];
  3.         mtextview.dataDetectorTypes = UIDataDetectorTypeAll;
  4.         mtextview.editable = NO;(必须的)
  5.         mtextview.text = @"My phone number is +8602980000000.\r\n"
  6.         "My personal web site www.xxxxxx.com.\r\n"
  7.         "My E-mail address is XXXXX@gmail.com.\r\n"
  8.         "I was born in 1900-01-01.";
  9.         [self addSubview:mtextview];
  10.         [mtextview release];

就是这样,神奇的超链接功能就实现啦


UITextView增加PlaceHolder

  • 2016年04月18日 15:46
  • 58KB
  • 下载

UITextView+placeholder

  • 2016年03月25日 15:18
  • 2KB
  • 下载

iOS中的一些关于"Linker"的报错

iOS中的一些关于”Linker”的报错最近群里有好多关于linker报错的问题, 但是Xcode又不能定位到错误地方, 只好到网上一点一点的爬贴了, 然后做一下记录 首先出现这样的错误的情况, 你要...

uitextview

  • 2014年01月01日 22:40
  • 1.02MB
  • 下载

UITextView

  • 2012年04月25日 18:06
  • 7KB
  • 下载

Linux Kernel系列三:Kernel编译和链接中的linker script语法详解

先要讲讲这个问题是怎么来的。(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么)。 我在编译内核的时候,发现arch/arm/kernel目...
  • Innost
  • Innost
  • 2011年08月29日 21:21
  • 14967

关于Xcode的Other Linker Flags中的一些参数

背景 在iOS开发过程中,有时候会用到第三方的静态库(.a文件),然后导入后发现编译正常但运行时会出现selector not recognized的错误,从而导致app闪退。接着仔...

UITextView

  • 2015年10月16日 09:33
  • 67KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITextView implement hyper linker
举报原因:
原因补充:

(最多只允许输入30个字)