UITextView 和 UITextField 字数限制

UITextFieldUITextView 设置输入字数限制

错误示例:#####

在他们的代理方法中限制输入字数不超过10位

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (range.location < 10) {
        return YES;
    } else {
        return NO;
    }
}

And

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if (range.location < 10) {
        return YES;
    } else {
        return NO;
    }
}

这种方法实现的效果,正常情况下是没问题的,但是,可以利用输入法的提示输入打破10个字符,这时无法再进行输入操作和单个删除操作,只能进行多选删除和全选删除操作。

UITextView 的解决办法:#####

实现以下代理方法

- (void)textViewDidChange:(UITextView *)textView
{
    if (textView.text.length > 10) {
        textView.text = [textView.text substringToIndex:10];
    }
}
UITextField 的解决办法:#####

1、给 UITextField 添加触发事件

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

2、实现自定义方法

- (void)textFieldDidChange:(UITextField *)textField
{
    if (textField.text.length > 10) {
        textField.text = [textField.text substringToIndex:10];
    }
}
这样,就可以解决 UITextField 和 UITextView 的字数限制问题了!#####

你可能感兴趣的:(UITextView 和 UITextField 字数限制)