Skip to content

qqcc1388/TYLimitInputDemo

Repository files navigation

项目中各个地方都会用到textField,textView,他们输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把他们进行了一层封装,方便后续开发使用,代码量也减少了很多,这里把封装的View提供出来,有需要的可以参考一下。

TYLimitedTextField能够快速实现以下功能(支持xib):
1. 限制输入的字符(数字,字母,数字+字母,email等)
2. 提供一个可以监听textField实时改变的方法,不需要自己去写观察者
3. 限制输入文字的最大长度
4. 限制textField距离leftPading rightPading
5. 更方便快捷的设置leftView rightView
6. 设置textFiled placeholderColor

TYLimitedTextView能够快速实现功能(支持xib)
1. placeholoder功能实现
2. textview输入长度实时监听,控制
3. 提供代理方法实现textview return事件回调

TYLimitedTextField TYLimitedTextView具体代码请参考demo

TYLimitedTextField 使用说明:

使用起来也非常简单 如果仅仅只是需要设置限制

    //设置限制键盘类型
    self.textField.limitedType = TYLimitedTextFieldTypeEmail;
    
    //设置最大长度
    self.textField.maxLength = 11;
    
    //设置leftPading rightPading
    self.textField.leftPadding = 10;
    self.textField.rightPadding = 10;

    //设置placehoder  注意顺序性 先设置文字再设置颜色
    self.textField.placeholder = @"请开始你的表演";
    self.textField.placeholderColor = [UIColor redColor];
    
    //设置leftView rightView
    UIButton *item = [UIButton buttonWithType:UIButtonTypeContactAdd];
    self.textField.customLeftView = item;

如果需要监听简单事件则需要实现代理realDelegate

    self.textField.realDelegate = self;

    -(BOOL)limitedTextFieldShouldReturn:(UITextField *)textField{
    NSLog(@"点击了return");
    return YES;
    }

    -(void)limitedTextFieldDidEndEditing:(UITextField *)textField{
        NSLog(@"结束编辑 - text:%@",textField.text);
    }

    -(void)limitedTextFieldDidChange:(UITextField *)textField{
        NSLog(@"实时监听文字改变%@",textField.text);
    }

TYLimitedTextView 使用说明:

    //设置允许输入的最大长度
   self.textView.maxLength = 200;

   self.textView.backgroundColor = [UIColor cyanColor];
   
   //设置placeholder
   self.textView.placeholder = @"请填写用户用户简介";

代理方法可用来监听textView输入,return endEditing事件

    //设置代理方法
self.textView.realDelegate = self;

-(BOOL)limitedTextViewShouldReturn:(UITextView *)textView{
    NSLog(@"点击了return");
    return NO;
}

-(void)limitedTextViewDidChange:(UITextView *)textView{
    NSLog(@"文字改变了 -- %@",textView.text);
    self.countLb.text = [NSString stringWithFormat:@"%zi/%zi",self.textView.inputLength,self.textView.maxLength];
}

-(void)limitedTextViewDidEndEditing:(UITextView *)textView{
    NSLog(@"结束编辑 - text:%@",textView.text);
}

** 使用TYLimitedTextField和TYLimitedTextView一定要注意:TYLimitedTextField和YLimitedTextView已经将系统的TextField,textView部分代理方法拓展出来了,所有如果你需要使用TYLimitedTextField,TYLimitedTextView回调功能,请不要使用delegate而使用realDelegate,否则会出现冲突也就是self.delegate = self 的尴尬。如果拓展出来的方法不足以你使用,自己自行拓展。 **

About

textfield textview limit input

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published