你的位置:首页 > 操作系统

[操作系统]iOS UITextField限制输入长度


这篇博客主要讲限制输入长度的问题,前几天有人问我这个问题,说限制长度会出现无法删除问题,于是正好一块发出来给大家看看。textField的缩进,一张背景图片搞定的事,我这里用了leftView纯属附带。

好了废话少说,贴代码,很简单,大家一看便知。

//先创建一个textField 和 一个button。

#import "ViewController.h"@interface ViewController ()<UITextFieldDelegate> {    UITextField *currentTextFeild;  UIButton  *touchButton;}@end@implementation ViewController- (void)viewDidLoad {  [super viewDidLoad];  // Do any additional setup after loading the view, typically from a nib.    UITextField *textFields = [[UITextField alloc] initWithFrame:CGRectMake(15, 50, self.view.bounds.size.width-15*2, 40)];  textFields.backgroundColor = [UIColor brownColor];  textFields.layer.cornerRadius = 5;  textFields.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 40)];  textFields.leftViewMode = UITextFieldViewModeAlways;//这两行是为了不让Text太贴textField的左边  textFields.placeholder = @"请输入手机号";  textFields.delegate = self;  [self.view addSubview:textFields];  currentTextFeild = textFields;    UIButton *enableButton = [UIButton buttonWithType:UIButtonTypeCustom];  enableButton.frame = CGRectMake(15, 100, self.view.bounds.size.width-15*2, 40);  enableButton.layer.cornerRadius = 5;  enableButton.backgroundColor = [UIColor grayColor];  [enableButton setTitle:@"没内容不可点击" forState:UIControlStateNormal];  [enableButton setTitle:@"可以按了" forState:UIControlStateSelected];  [enableButton setTitle:@"按下去了" forState:UIControlStateHighlighted];  enableButton.enabled = NO;  [enableButton addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:enableButton];  touchButton = enableButton;}- (void)btnClick {    }

//设置textField代理 

#pragma mark - UITextFieldDelegate- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {    return YES;}- (void)textFieldDidEndEditing:(UITextField *)textField {    }- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    //用来判断是否可以继续输入, - range.length是为了判断是否可以删除  NSInteger currentLength = textField.text.length - range.length + string.length;  if (currentLength > 11) {        return NO;  }    //判断按钮是否可以enable = YES  if (currentTextFeild.text && currentTextFeild.text.length > 0 && currentLength > 0) {        touchButton.enabled = YES;    touchButton.selected = YES;  }else {        touchButton.enabled = NO;    touchButton.selected = NO;  }    if (currentLength <= 0) {        touchButton.enabled = NO;    touchButton.selected = NO;  }    return YES;}- (BOOL)textFieldShouldClear:(UITextField *)textField {    if (currentTextFeild.tag == 11 || currentTextFeild.tag == 12) {    //手机号    touchButton.enabled = NO;    touchButton.selected = NO;;  }    return YES;}- (BOOL)textFieldShouldReturn:(UITextField *)textField {    [textField resignFirstResponder];    return YES;}

 大家看了代码,差不多就明白了。