UITextView的基本使用
1. 创建UITextView
self.textView = [[UITextView alloc] initWithFrame:(CGRectMake(0, 264, SCREEN_Width, 100))];
2. UITextView属性
text 设置文本显示内容
self.textView.text = @"小鬼 叫帅哥 叫帅哥不打你 ";
backgroundColor 设置背景色
self.textView.backgroundColor = [UIColor blueColor];
scrollEnabled 当文本内容超出视图边框时是否允许滑动, 默认为YES
self.textView.scrollEnabled = NO;
editable 设置是否允许编辑文本内容 默认为YES(可编辑)
self.textView.editable = YES;
delegate 设置代理方法的实现类
self.textView.delegate = self;
font 设置字体名字和大小
self.textView.font = [UIFont fontWithName:@"Arial" size:16.0f];
returnKeyType 设置键盘上的return键的类型
self.textView.returnKeyType = UIReturnKeyDefault;
UIReturnKeyType 枚举类型
UIReturnKeyDefault 默认:灰色按钮,标有Return
UIReturnKeyGo 标有Go的蓝色按钮
UIReturnKeyGoogle 标有Google的蓝色按钮,用于搜索
UIReturnKeyJoin 标有Join的蓝色按钮
UIReturnKeyNext 标有Next的蓝色按钮
UIReturnKeyRoute 标有Route(路线; 途径; 路途;)的蓝色按钮
UIReturnKeySearch 标有Search的蓝色按钮
UIReturnKeySend 标有Send的蓝色按钮
UIReturnKeyYahoo 标有Yahoo!的蓝色按钮,用于搜索
UIReturnKeyDone 标有Done的蓝色按钮
UIReturnKeyEmergencyCall 紧急呼叫按钮
keyboardType 键盘类型
self.textView.keyboardType = UIKeyboardTypeDefault;
UIKeyboardType 枚举类型
UIKeyboardTypeDefault 默认键盘:支持所有字符
UIKeyboardTypeASCIICapable 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation 标准电话键盘,支持+*#等符号
UIKeyboardTypeURL URL键盘,有.com按钮;只支持URL字符
UIKeyboardTypeNumberPad 数字键盘
UIKeyboardTypePhonePad 电话键盘
UIKeyboardTypeNamePhonePad 电话键盘,也支持输入人名字
UIKeyboardTypeEmailAddress 用于输入电子邮件地址的键盘
textAlignment 文本内容居左还是居中还是居右
self.textView.textAlignment = NSTextAlignmentLeft; 居左显示
self.textView.textAlignment = NSTextAlignmentCenter; 居中显示
self.textView.textAlignment = NSTextAlignmentRight; 居右显示
NSTextAlignment 枚举类型(常见食用如上)
dataDetectorTypes 显示数据类型的连接模式(如电话号码、网址、地址等)
self.textView.dataDetectorTypes = UIDataDetectorTypeAll;
UIDataDetectorTypes 枚举类型 显示数据类型的连接模式
UIDataDetectorTypePhoneNumber 检测格式化为电话号码的字符串
UIDataDetectorTypeLink 检测格式为URL的字符串
UIDataDetectorTypeAddress 检测格式为地址的字符串
UIDataDetectorTypeCalendarEvent 检测格式化为日历事件的字符串
UIDataDetectorTypeShipmentTrackingNumber 检测格式化为包裹递送公司的跟踪号码的字符串
UIDataDetectorTypeFlightNumber 检测格式化为航空公司航班号的字符串
UIDataDetectorTypeLookupSuggestion 检测格式化为用户可能要查找的信息的字符串
UIDataDetectorTypeNone 不支持超链接
UIDataDetectorTypeAll 接收所有类型的字符串
textColor 设置文本内容字体颜色
self.textView.textColor = [UIColor grayColor];
autocapitalizationType 输入类型
self.textView.autocapitalizationType = UITextAutocapitalizationTypeNone;
UITextAutocapitalizationType 枚举类型
UITextAutocapitalizationTypeNone 不自动大写
UITextAutocapitalizationTypeWord 单词首字母大写
UITextAutocapitalizationTypeSentences 句子首字母大写
UITextAutocapitalizationTypeAllCharacters 所有字母大写
autocorrectionType 是否自动更正
self.textView.autocorrectionType = UITextAutocorrectionTypeDefault;
UITextAutocorrectionType 枚举类型
UITextAutocorrectionTypeDefault 默认
UITextAutocorrectionTypeNo 不自动更正
UITextAutocorrectionTypeYes 自动更正
secureTextEntry 安全文本输入
self.textView.secureTextEntry = YES; 开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存
keyboardAppearance 键盘外观
self.textView.keyboardAppearance = UIKeyboardAppearanceDefault;
UIKeyboardAppearance 枚举类型
UIKeyboardAppearanceDefault 默认外观:浅灰色
UIKeyboardAppearanceAlert 深灰 / 石墨色
3. UITextView代理方法
- (BOOL)textViewShouldBeginEditing:(UITextView*)textView; 将要开始编辑
- (BOOL)textViewShouldEndEditing:(UITextView*)textView; 将要结束编辑
- (void)textViewDidBeginEditing:(UITextView*)textView; 开始编辑
- (void)textViewDidEndEditing:(UITextView*)textView; 结束编辑
- (BOOL)textView:(UITextView*)textViewshouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text; 内容将要发生改变编辑
- (void)textViewDidChange:(UITextView*)textView; 内容发生改变编辑
- (void)textViewDidChangeSelection:(UITextView*)textView; 焦点发生改变
4. UITextView限制字数
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidChangeNotification:) name:UITextFieldTextDidChangeNotification object:nil];
NSNotificationCenter注册通知 UITextFieldTextDidChangeNotification
- (void)textViewDidChangeNotification:(NSNotification *)notification{
UITextField * textView = (UITextField *)notification.object;
// 需要限制的长度 #define NSIntegerMax LONG_MAX
NSUInteger maxLength = 100 ?: NSIntegerMax;
// text field 的内容
NSString *contentText = textView.text;
// 获取高亮内容的范围
UITextRange *selectedRange = [textView markedTextRange];
// 这行代码 可以认为是 获取高亮内容的长度
NSInteger markedTextLength = [textView offsetFromPosition:selectedRange.start toPosition:selectedRange.end];
// 没有高亮内容时,对已输入的文字进行操作
if (markedTextLength == 0) {
// 如果 text field 的内容长度大于我们限制的内容长度
if (contentText.length > maxLength) {
NSRange rangeRange = [contentText rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)];
textView.text = [contentText substringWithRange:rangeRange];
}
}
}
网友评论