iOS限制textview與textfield輸入長度

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];
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容