ios中实现对UItextField,UITextView等输入框的字数限制
2015-11-22 17:59
507 查看
转载自:http://blog.csdn.net/sjzsp/article/details/6845417
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;
}
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;
}
相关文章推荐
- 《leetCode》:Permutation Sequence
- 1017. Queueing at Bank
- ios UITableView 入门
- Easyui简单布局
- UIButton
- Arduino 学习上拉电阻和下拉电阻遇到的问题
- UIBezierPath绘制图形
- java获取request的 ip port
- UIView
- LeetCode 063 Unique Paths II
- Android(13)java中的线程回顾,Android线程,主线程(UI线程)
- POJ1679The Unique MST(次小生成树)
- 第九章 UI布局管理器
- break continue详解
- 第八章 高级UI组件
- easyui环境搭建02
- Unique Paths II-leetcode
- cocoapods 0.35.0 版本 报错 Parsing unable to continue due to parsing error:
- UIBezierPath的自定义路径绘图
- LeetCode 062 Unique Paths