您的位置:首页 > 产品设计 > UI/UE

如何实现对UITextField ,UITextView等输入框的 字数限制

2012-10-07 20:20 411 查看
最大的区别,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。

代码如下:

view plain

//如果输入超过规定的字数100,就不再让输入

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

if (range.location>=100)

{

return NO;

}

else

{

return YES;

}

}

2. 如何实现 对有输入限制的输入框的剩余字数的自动计算

比如上面的代码中,输入框的字数不能超过100,如何实时的计算出当前可以输入多少个字符呢?

UITextField 没有找到合适的函数,也可以在函数

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string;

中来实现。

代码:

view plain

- (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;

}

}

UITextView 除了可以在函数

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text
中按照上面类似的办法处理以外,还可以在函数

- (void)textViewDidChange:(UITextView *)textView 中处理。

代码如下:

view plain

//在这个地方计算输入的字数

- (void)textViewDidChange:(UITextView *)textView

{

NSString * nsTextContent=textView.text;

int existTextNum=[nsTextContent length];

remainTextNum_=100-existTextNum;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: