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