ios开发之UITextField、UITextView限制最大输入数

来源:互联网 发布:mac os x 10.9懒人版 编辑:程序博客网 时间:2024/05/22 14:58

UITextField

不多说直接上代码

  • 首先定一个全局常量maxNum, 指定一个最大输入范围
NSInteger const maxNum = 20;
  • 创建一个UITextField对像,为你的UITextField对象添加监听方法
 [self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
  • 实现TextField的监听方法
#pragma mark -------UITextFiledDelegate-(void)textFieldDidChange:(UITextField *)textField{    NSString *toBeString = textField.text;    //获取高亮部分    UITextRange *selectedRange = [textField markedTextRange];    UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];    if (!position || !selectedRange)    {        if (toBeString.length > maxNum)        {            NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:maxNum];            if (rangeIndex.length == 1)            {                textField.text = [toBeString substringToIndex:maxNum];            }            else            {                NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxNum)];                textField.text = [toBeString substringWithRange:rangeRange];            }        }    }}

UITextView

  • 首定以一个全局常量
NSInteger const maxNum = 20;
  • 创建一个UITextView对象并实现它的监听代理方法
#pragma mark ------- UITextViewDelegate- (void)textViewDidChange:(UITextView *)textView{    if (textView.text.length >= maxDetailNum) {        textView.text = [textView.text substringToIndex:maxDetailNum];    }}

谢谢观看~~~~

阅读全文
0 0