美文网首页
iOS开发:UITextField限制输入文字个数

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

作者: First灬DKS | 来源:发表于2016-04-14 14:45 被阅读640次

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


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

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

实现上面所添加的方法:

- (void)textFieldDidChange:(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;
}

相关文章

网友评论

      本文标题:iOS开发:UITextField限制输入文字个数

      本文链接:https://www.haomeiwen.com/subject/qwmglttx.html