• 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;
    }

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

    只要有梦想,人生就有意义。。。
  • 相关阅读:
    数据结构学习(十二)、归并排序
    数据结构学习(十一)、堆排序
    数据结构学习(十)、插入排序
    数据结构学习(九)、简单选择排序
    数据结构学习(八)、冒泡排序
    天梯赛 L3-013 非常弹的球 找规律
    codeup模拟赛 进击的二叉查找数
    POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
    HDU 1394 逆序数 线段树单点跟新 | 暴力
    HDU 2795 Billboard 线段树,区间最大值,单点更新
  • 原文地址:https://www.cnblogs.com/jiafuyang/p/4829120.html
Copyright © 2020-2023  润新知