美文网首页iOS文章
UITextView 和 UITextField 字数限制

UITextView 和 UITextField 字数限制

作者: 馬夫 | 来源:发表于2016-04-19 11:09 被阅读1491次

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 的字数限制问题了!#####

相关文章

网友评论

  • 一梦十年ya:这种是一般情况,如果是在中间插入内容呢?截取到后面不合适吧?
    一梦十年ya:@馬夫 :worried: 用户是万能的,测试也是万能的
    馬夫:是的,但是你这种从中间输入的需求也是搞事。

本文标题:UITextView 和 UITextField 字数限制

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