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];
}
}