iOS 追踪限制textfield输入位数

实现效果:强制用户只能输入16位数,这里是运用在信用卡号码的输入。

输入字符数大于16,把字的颜色设为黑色,且不管继续输入什么内容,只取前16位;

若小于16位,把字的颜色设为红色,且设置“无效”。

-(void)viewDidLoad{
    [super viewDidLoad];
    // 每隔0.1秒检查输入框
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(checkCardInfoInput) userInfo:nil repeats:YES];
}

-(void)checkCardInfoInput{
    BOOL isValid = YES;
    if ([self.cardNumberTextField.text length] >= 16){
        self.cardNumberTextField.textColor = [UIColor blackColor];
        self.cardNumberTextField.text = [self.cardNumberTextField.text substringWithRange:NSMakeRange(0, 16)];
    }
    else{
        self.cardNumberTextField.textColor = [UIColor redColor];
        isValid = NO;
    }

   // 其他验证

    if (isValid == YES) {
        self.AddCreditCardButton.enabled = YES;
        self.AddCreditCardButton.backgroundColor = [UIColor greenColor];
    }
    else{
        self.AddCreditCardButton.enabled = NO;
        self.AddCreditCardButton.backgroundColor = [UIColor grayColor];
    }
}

iOS 追踪限制textfield输入位数,布布扣,bubuko.com

时间: 2024-10-21 19:24:48

iOS 追踪限制textfield输入位数的相关文章

iOS textField输入金额的限制,小数点前9位,后面两位

iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { // 判断是否输入内容,或者用户点击的是键盘的删除按钮 if (![string isEqualT

即时搜索:对于ios自带输入法输入中文时多次触发input事件的处理

实现移动端的即时搜索的最佳方案,一定是使用input propertychange事件了,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现多次触发input事件的情况,一开始可能由于搜索的关键字不得法,没有即时找到合适的方案,后来终于在网上找到了解决方案,现记录如下: 代码实现 /** * @param flag: 用于标记是否是非直接的文字输入 */ var flag = false; $('#id').on({ 'compositionstart': function()

native-base中Input,Textarea等组件在ios平台下不能输入中文

在上文react-native中TextInput在ios平台下不能输入中文已经解决. 但是在native-base中Input和Textarea都存在这样的问题.为了不要写多个组件,封装以下代码: import React from 'react'; import PropTypes from 'prop-types'; import { Platform, } from 'react-native'; import { Textarea, Input, } from 'native-base

自定义指令 限制input 的输入位数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

iOS textfield输入长度限制汉字无效

-(void)textFiledEditChanged:(NSNotification *)obj{ UITextField *textField = (UITextField *)obj.object;        NSString *toBeString = textField.text;    NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式    if ([lang isEq

iOS 监听textfield的输入(转)

1:首先 [objc] view plain copy print? [textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 2:其次 [objc] view plain copy print? -(void)textFieldDidChange :(UITextField *)theTextField{ NSLog( @"tex

iOS 委托与文本输入(内容根据iOS编程编写)

文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  view 中添加一个 UITextField 对象: #import "JXHypnosisViewController.h" #import "JXHypnosisView.h" @interface JXHypnosisViewController () @end

iOS 限制输入框不能输入中文

开发中遇到这个问题,想着还是总结下,刚开始只是限制UITextField的键盘为 UIKeyboardTypeASCIICapable,可是当用户切换了中文键盘后依然没解决问题,于是我给输入框加了监听事件,获取输入框最新的输入内容,检测输入的内容中是否含有中文,如果有中文就替换成空字符串,具体实现如下: infoView.userTF.keyboardType = UIKeyboardTypeASCIICapable; //监听输入内容 [[NSNotificationCenter defaul

IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母

今天在项目中需要用到判断用户输入的用户名长度为8-16位且同时包含数字和字母,在网上搜了一下正则表达式的用法,然后参考这篇blog,完美解答了问题.记录一下: 密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间. 如何分析需求?拆分!这就是软件设计的一般思路了.于是乎,拆分需求如下: 1,不能全部是数字 2,不能全部是字母 3,必须是数字或字母 只要能同时满足上面3个要求就可以了,写出来如下: 1 ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-