您的位置:首页 > 产品设计 > UI/UE

iOS开发中UITextField限制输入文字个数

2016-04-14 14:25 519 查看

iOS开发中UITextField限制输入文字个数

一般在开发中有一个输入框,此时我们需要限制在输入框中输入文字的个数,如果用UITextField的代理方法去实现,确实挺暴力的,不过当文字达到了限制限制的时候,此时我们就无法删除输入框里面的内容,而且在输入最后一个文字时,肯定是先出现字母,导致textField.text.length达到了上限,在此,我总结了一个方法,希望可以对有需要的朋友有所帮助!代码如下:

首先,我们在创建UITextField的时候,需要给这个对象添加一个方法,这个方法是UITextField自带的:

[_textField addTarget:self action:@selector(textFiledDidChange:) forControlEvents:UIControlEventEditingChanged];


实现上面所添加的方法:

- (void)textFiledDidChange:(UITextField *)textField
{
NSLog(@"%@", textField.text);
int length = [self convertToInt:textField.text];
NSLog(@"%d", length);
//如果输入框中的文字大于10,就截取前10个作为输入框的文字
if (length > 10) {
textField.text = [textField.text substringToIndex:5];
}
}


下面这个方法主要是为了判断textField中汉字的个数,一个汉字等于两个字符的长度:

- (int)convertToInt:(NSString *)strtemp//判断中英混合的的字符串长度
{
int strlength = 0;
for (int i=0; i< [strtemp length]; i++) {
int a = [strtemp characterAtIndex:i];
if( a > 0x4e00 && a < 0x9fff) { //判断是否为中文
strlength += 2;
}
}
return strlength;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: