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

//先创建一个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;
}

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

iOS- UITextField限制输入长度的更多相关文章

  1. iOS 限制TextField输入长度(标准)

    iOS 限制TextField输入长度(标准) 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入 ...

  2. 更好地限制一个UITextField的输入长度

    要限制一个UITextField的输入字数,首先想到的应该是通过 UITextFieldDelegate 的代理方法来限制: - (BOOL)textField:(UITextField *)text ...

  3. iOS UITextField限制输入数字

    有时候项目中要求文本框中只能输入数字,如:价格.公里数.费用等等,一般的文本框不限制输入的格式,这时候只能强制限制输入框的输入格式了,代码如下: #import "ViewControlle ...

  4. UITextField限制输入长度

    首先,汉字的输入时的联想词在输入到TextFiled时,并不会走 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersIn ...

  5. iOS UITextField限制输入字数

    关于iOS的文本框有时需要限制字数,如手机号,在UITextField的代理单纯写一个判断,在字数超过限制时,这时再想删除就删除不掉,可以在代理这样写,就解决 - (BOOL)textField:(U ...

  6. UiTextField 限制输入长度

    -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...

  7. iOS 限制TextField输入长度

    1 #import "MyInfoEditTableViewCell.h" @interface MyInfoEditTableViewCell()<UITextFieldD ...

  8. iOS 限制TextField输入长度(支持删除)

    if (textField == _phoneTF) { //支持删除 && ) { return YES; } ) { _phoneTF.text = [textField.text ...

  9. 简单几步实现 IOS UITextField输入长度的控制

    在ios开发过程中,我们有时候需要对UITextField的输入长度进行控制,比如输入手机号码最大长度为11位等,而ios自身又不像android那样可以设置输入框的输入长度,接下来通过简单几步实现这 ...

  10. 限制 UITextField 输入长度

    限制 UITextField 输入长度 标签(空格分隔): UITextField UITextField 是 iOS 中最经常使用的组件之中的一个.关于它也有各种各样的需求,这些需求是它本身没有提供 ...

随机推荐

  1. spring cache

    spring-ehcache.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans ...

  2. 。【自学总结 2】------3ds Max 菜单

    一.File〈文件菜单:主要用于打开.存储和打印文件,可以将文件导入和导出为不同的其他三维存档格式.〉 New〈新建〉 Reset〈重置〉 Open〈打开〉 Save〈保存〉 Save As〈保存为〉 ...

  3. php中session机制的详解

    [补充]session_start()要放在php最前面,header()函数也要放在session_start()之后. [读了下面的文章转载的文章后自己的理解]: 1,通过phpinfo()函数可 ...

  4. js数组的一些操作

    原文地址:flash很好玩  http://www.cnblogs.com/yuzhongwusan/archive/2008/12/15/1355378.html arr = new Array(1 ...

  5. Linux基本操作1 - 设备操作

    Linux开发的过程中,肯定会使用到很多设备,所以对设备的挂载卸载是一个很基本的操作. Linux对设备的默认定义如下: 一.Linux中的硬件设备号     设 备          设 备 号   ...

  6. 《BI那点儿事》数据流转换——审核

    审核转换允许对数据流添加审核审核数据,以往使用HIPPA和Sarbanes-Oxley (SOX)时,必须跟踪谁在什么时插入数据,审核转换可以实现这种功能.例如要跟踪那一个task向表里插入数据,可以 ...

  7. java 获取项目绝对路径

    String classPath = Thread.currentThread().getContextClassLoader().getResource("").getPath( ...

  8. git reset soft,hard,mixed之区别深解

    GIT reset命令,似乎让人很迷惑,以至于误解,误用.但是事实上不应该如此难以理解,只要你理解到这个命令究竟在干什么. 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也就是在当前分支 ...

  9. GUI 测试

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确.同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度.因为 ...

  10. SourceForge无法访问的解决办法

    这一阵java框架spring和hibernate都有新版本了(spring2.5.5和hibernate3.2.6)想下载看看,却发现 SourceForge.net无法打开.刚才用Google搜索 ...