限制UITextField输入字数(系统输入法候选输入同样适用)

来源:互联网 发布:算法图解 pdf 百度云 编辑:程序博客网 时间:2024/05/16 04:39

      今天遇到一个输入框需求,输入字数不能超过20。

     我首先使用的是UITextField代理方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

if (textField == self.takeWordField) {

        NSString *resultStr = [NSStringstringWithFormat:@"%@%@",self.takeWordField.text,string];

        if (resultStr.length <=20) {

            returnYES;

        }else{

            returnNO;

        }

    }

}

测试时候发现如果用系统输入法的候选字输入时,代理方法监测不到。

后来改用:

[self.takeWordFieldaddTarget:selfaction:@selector(changeValue:)forControlEvents:UIControlEventEditingChanged];

-(void)changeValue:(UITextField *)field{

    NSLog(@"length >> %@",field.text);

    if (field.text.length >20) {

        self.takeWordField.text =  [field.textsubstringToIndex:20];

    }

}

完美解决,希望对你有帮助!
0 0
原创粉丝点击