实现对UITextField ,UITextView等输入框的 字数限制
1. 如何实现对UITextField ,UITextView等输入框的 字数限制
(1)首先,肯定要 让controller 实现 UITextFieldDelegate (针对UITextField)或者 UITextViewDelegate(针对UITextView)
然后,将 输入框的delegate属性设置为self.
(2) 然后,我们就可以用这两个delegate的函数来实现 我们对输入字数的限制了。
对于 UITextField 是函数
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
或者
对于UITextView 是函数
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
如果允许继续输入,那么返回YES,否则返回NO。
代码如下:
//如果输入超过规定的字数100,就不再让输入 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if (range.location>=100) { return NO; } else { return YES; } } - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { int remainTextNum_=100; //计算剩下多少文字可以输入 if(range.location>=100) { remainTextNum_=0; return NO; } else { NSString * nsTextContent=string.text; int existTextNum=[nsTextContent length]; remainTextNum_=100-existTextNum; return YES; } } //在这个地方计算输入的字数 - (void)textViewDidChange:(UITextView *)textView { NSString * nsTextContent=textView.text; int existTextNum=[nsTextContent length]; remainTextNum_=100-existTextNum; }