zoukankan      html  css  js  c++  java
  • iOS- UITextField限制输入长度

    限制输入长度的问题,在这里完美的解决了!

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #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代理 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #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;
    }

     只要有基础的,差不多都能看明白。。。

    只要有梦想,人生就有意义。。。
  • 相关阅读:
    git命令
    熟悉sql常用语句
    面试:django
    python面试基本题(你需要的)
    django的几种方法进行序列化(视图)
    阿布云代理ip
    了解Git操作
    django前后端交互
    面向对象
    mysql数据库基本操作
  • 原文地址:https://www.cnblogs.com/jiafuyang/p/4829120.html
Copyright © 2011-2022 走看看