欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

iOS限制textview与textfield输入长度

程序员文章站 2022-04-06 11:45:48
...

1.textview通过实现textViewDidChange代理方法来实现。

- (void)textViewDidChange:(UITextView *)textView{
    
    if (textView.markedTextRange == nil && textView.text.length > 50) {
        //提示语
        [self showMessage:@"输入限制50个字符以内"];
        //截取
        textView.text = [textView.text substringToIndex:50];
    }
}

2.textfield实现限制输入长度
本想通过textfield的代理方法shouldChangeCharactersInRange实现,但是当点击联想字符时不走这个代理,点击联想字符时同样也不走textfield的其他几个编辑状态的代理。 这里也没有发现有textfiledDidChange的代理。 但是在UITextField的父类UIControl中有个 ( UIControlEventEditingChanged)事件,所以可以通过给UITextField添加事件来实现限制输入长度。

//添加事件
[_textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
//实现方法
- (void)textFieldDidChange:(UITextField *)textField
{
    if (textField.text.length > 20) {
        //提示语
        [self showMessage:@"输入限制20个字符以内"];
        //截取
        textField.text = [textField.text substringToIndex:20];
    }
}