本文主要是介绍IOS UITextView、UITextField长度限制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:在开发中我们都会碰到UITextView、UITextField输入长度限制。
大致步骤如下:
1、获取文本内容;
2、获取文本输入模式;
3、判断是否是中文;
4、如果是中文,获取标识的内容位置
5、如果超过限定的长度,则进行截串;
一、UITextView限制长度
/*** 限制textView输入长度** @param textView UITextView* @param length 限制长度*/+ (void)textView:(UITextView *)textView limitLength:(int)length
{//1.获取文本内容NSString *toBeString = textView.text;//2.获取文本输入模式UITextInputMode *mode = textView.textInputMode;NSString *lang = mode.primaryLanguage;//3.判断是否是中文if ([lang isEqualToString:@"zh-Hans"]) {//3.1获取标识的文本范围UITextRange *range = [textView markedTextRange];UITextPosition *position = [textView positionFromPosition:range.start offset:0];//3.2如果超过限定的长度,则进行截串if (!position && toBeString.length > length) {textView.text = [toBeString substringToIndex:length];}}else {//3.2如果超过限定的长度,则进行截串if (toBeString.length > length) {textView.text = [toBeString substringToIndex:length];}}
}
/*** 限制textField输入长度** @param textField UITextField* @param limitLength 限制长度*/
+ (void)textField:(UITextField *)textField limitLength:(int)limitLength
{NSString *toBeString = textField.text;UITextInputMode *mode = textField.textInputMode;NSString *lang = mode.primaryLanguage;if ([lang isEqualToString:@"zh-Hans"]) {UITextRange *range = [textField markedTextRange];UITextPosition *positon = [textField positionFromPosition:range.start offset:0];if (!positon && toBeString.length > limitLength) {textField.text = [toBeString substringToIndex:limitLength];}}else{if (toBeString.length > limitLength) {textField.text = [toBeString substringToIndex:limitLength];}}
}
这篇关于IOS UITextView、UITextField长度限制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!