ios 开发UI篇—UITextView
概述
UITextView
可滚动的多行文本区域UITextView
支持使用自定义样式信息显示文本,并支持文本编辑。您通常使用文本视图来显示多行文本,例如在显示大型文本文档的正文时。UITextView
继承于UIScrollView
属性和方法
初始化方法
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, [UIScreen mainScreen].bounds.size.width - 100, 300)];
设置文本内容
textView.text = @"测试数据";
attributedText
属性文本,这里不多做介绍,具体请点此查看
设置文本的字体
textView.font = [UIFont systemFontOfSize:20];
设置文本的颜色
textView.textColor = [UIColor redColor];
设置是否可以编辑,默认是YES
[textView setEditable:NO];
设置文本的对齐方式
textView.textAlignment = NSTextAlignmentRight;
使用dataDetectorTypes
实现超链接,需要将可编辑状态设置为NO
(更多枚举类型到补充说明中查看)
textView.text = @"http://baidu.com";
[textView setEditable:NO];
textView.dataDetectorTypes = UIDataDetectorTypeLink;
UITextView
代理方法
即将开始编辑
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
已经开始编辑
- (void)textViewDidBeginEditing:(UITextView *)textView;
编辑即将结束
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;
编辑已经结束
- (void)textViewDidEndEditing:(UITextView *)textView;
文本视图在用户输入新字符或删除现有字符时调用此方法
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text;
输入的内容已经变化时调用此方法
- (void)textViewDidChange:(UITextView *)textView;
文本视图的选择已更改,就会调用此方法
- (void)textViewDidChangeSelection:(UITextView *)textView;
如果用户点击或长按文本附件,而其image
属性不是,则文本视图将调用此方法nil
。您可以使用此方法触发一个操作,除了显示与文本内联的文本附件外。
- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
该方法仅在与URL
链接的第一次交互时被调用。例如,当用户希望首次与URL
进行交互以显示可以采取的操作列表时,将调用此方法; 如果用户从列表中选择一个打开的动作,则不调用此方法,因为“open
”表示与同一个URL
的第二个交互。
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange interaction:(UITextItemInteraction)interaction;
文本视图中的链接只有在文本视图可选但不可编辑的情况下才是交互式的。也就是说,如果该值属性是与属性。UITextViewselectableYESeditableNO
补充说明
UITextView
相关通知
UITextView 相关通知名称 | 说明 |
---|---|
UITextViewTextDidBeginEditingNotification | TextView 开始编辑时发出的通知 |
UITextViewTextDidChangeNotification | TextView 的内容开始改变时发出的通知 |
UITextViewTextDidEndEditing | TextView 结束编辑时发出的通知 |
UITextView
的dataDetectorTypes
属性对应的枚举以及说明
类型 | 说明 |
---|---|
UIDataDetectorTypePhoneNumber | 检测格式化为电话号码的字符串。 |
UIDataDetectorTypeLink | 检测格式为URL的字符串。 |
UIDataDetectorTypeAddress | 检测格式为地址的字符串。 |
UIDataDetectorTypeCalendarEvent | 检测格式化为日历事件的字符串。 |
UIDataDetectorTypeShipmentTrackingNumber | 检测格式化为包裹递送公司的跟踪号码的字符串。 |
UIDataDetectorTypeFlightNumber | 检测格式化为航空公司航班号的字符串。 |
UIDataDetectorTypeLookupSuggestion | 检测格式化为用户可能要查找的信息的字符串。 |
UIDataDetectorTypeNone | 不支持超链接 |
UIDataDetectorTypeAll | 接收所有类型的字符串 |