限制一个或多个textfiled输入长度及内容

iOS移动开发-自定义键盘组件-UITextField扩展数字输入键盘-支持整数浮点身份证号格式化输入-智能间隔空格处理-提升用户输入体验-适用于金融支付表单验证等场景-提供三种专.zip iOS移动开发_自定义键盘组件_UITextField扩展数字输入键盘_支持整数浮点身份证号格式化输入_智能间隔空格处理_提升用户输入体验_适用于金融支付表单验证等场景_提供三种专.zip上传一个【Python】VIP资源 立即下载

#define TEXT_MAXLENGTH11   //允许最多输入11个字符

#define TEXT_CODELENGTH 6  //允许最多输入6个字符


#define kAlphaNum @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" //仅允许输入数字和字母

#define kPhoneNum @"0123456789" //仅数字


textFiled.keyboardType = UIKeyboardTypeASCIICapable;//数字字母键盘,设置输入框仅能输入数字和字母

textFiled.keyboardType = UIKeyboardTypePhonePad;//数字,*#键盘,设置输入框仅可以输入手机号

textFiled.keyboardType = UIKeyboardTypeNumberPad;//纯数字键盘,设置输入框仅可以输入数字



下面这个方法可以控制输入大小以及仅限输入字母或数字,但是只要输入达到上限便不可删除,因为如果用户按下删除键,范围的长度就是1,并使用一个空字符串对象替换该字符。若在长度上限的位置进行删除,则直接返回NO,不可修改textField。


NSCharacterSet *cs;
    cs = [[NSCharacterSet characterSetWithCharactersInString:kPhoneNum] invertedSet];
    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串
    BOOL canChange = [string isEqualToString:filtered];
return self.phoneText.text.length>=TEXT_MAXLENGTH?NO: canChange;


因此如果判断删除操作,便可解决无法删除的问题。



最终代码: 


//textFiled代理方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    
    NSCharacterSet *cs;
    cs = [[NSCharacterSet characterSetWithCharactersInString:kPhoneNum] invertedSet];//仅允许输入数字
    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; 
    BOOL canChange = [string isEqualToString:filtered];//判断输入是否为数字,返回0则不可以输入
    
    if (self.phoneText.text.length>=TEXT_MAXLENGTH) {
        if ([string isEqualToString:@""] && range.length > 0) {
            //如果是删除按钮,则返回YES
            return YES;
        }
        else {
            if (textField.text.length - range.length + string.length > TEXT_MAXLENGTH) {
                return NO;
            }
            else {
                return YES;
            }
        }
    }else{
        return canChange;
    }
    
}


2.设置多个TextFiled的不同输出长度.例如输入手机号和验证码。需要限制哪个TextFiled就设置哪个代理。


_textPhone.delegate = self;
    _textPhone.keyboardType = UIKeyboardTypePhonePad;//只可以输入手机号的键盘
    _textCode.delegate = self;
    _textCode.keyboardType = UIKeyboardTypeNumberPad;//纯数字键盘

调用代理方法。通过判断输入框设置不同的输入长度以及内容

if (textField == _textPhone)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *cs;
    cs = [[NSCharacterSet characterSetWithCharactersInString:kPhoneNum] invertedSet];
    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串
    BOOL canChange = [string isEqualToString:filtered];
    NSLog(@"canchange == %d",canChange);
    
    if (textField == _textPhone) {
        if (self.textPhone.text.length>=TEXT_MAXLENGTH) {
            if ([string isEqualToString:@""] && range.length > 0) {
                return YES;
            }
            else {
                if (textField.text.length - range.length + string.length > TEXT_MAXLENGTH) {
                    return NO;
                }
                else {
                    return YES;
                }
            }
        }else{
            return canChange;
        }
    }else{
        if (self.textCode.text.length>= TEXT_CODELENGTH) {
            if ([string isEqualToString:@""] && range.length > 0) {
                return YES;
            }
            else {
                if (textField.text.length - range.length + string.length > TEXT_CODELENGTH) {
                    return NO;
                }
                else {
                    return YES;
                }
            }
        }else{
            return canChange;
        }
    }
}





机器人手眼标定快速精度验证方法 阅读详情

相关推荐

Windows MCP 安装教程:让 AI 代理与 Windows 系统无缝交互

通过以上步骤,你已经成功安装和配置了 Windows MCP 服务。现在你的 Cursor 编辑器可以通过 MCP 协议与 Windows 系统进行深度交互,AI 代理能够:启动和控制应用程序执行系统命令自动化 UI 操作获取系统状态信息这为 AI 辅助开发和工作流程自动化提供了强大的基础。如果你在使用过程中遇到任何问题,欢迎在评论区讨论或查看项目的官方文档。

chenchihwen的专栏 3350

Ext.Net/ExtJs:关于TextField控件内size、maxLength控制文本框输入字符长度属性失效问题分析以及解决方案

今天发现这样一个关于Ext.Net内TextField文本框设置属性MaxLength、Size、MaxLengthText均失效问题,设置了此属性,依然可以无限制地输入文本信息。无奈之余,网上搜索了一番,发现在ExtJs版本内也会存在这个问题。 先给我自己的解决办法(这是一个可编辑grid,obj为遍历的出的列对象) if(obj.edittype == "text"

Fupengyao的博客 5332

新能源场站必看:一次调频与AGC/AVC的协同控制逻辑解析(含典型拓扑图)

本文深度解析了新能源场站中一次调频与AGC/AVC的协同控制逻辑。针对电网频率与电压稳定需求,详细阐述了三者在响应时序、控制目标上的分工与配合,并重点剖析了以RCL-0923装置为核心的指令融合架构与典型拓扑,为场站实现高效、稳定的协同运行提供了清晰的实践指导。

brown的博客 1056

textField限制输入长度

对字符串的长度限制,实现如下: #define kMaxLength 20 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{    NSString * toB

ZhangJ的博客 774

别再死磕RD算法了!用MATLAB手把手复现SAR后向投影(BP)成像(附完整代码与避坑点)

本文详细介绍了如何使用MATLAB实现合成孔径雷达(SAR)后向投影(BP)成像算法,突破传统RD算法在大斜视和复杂轨迹场景中的局限。通过完整的代码示例和避坑指南,帮助读者掌握BP算法的核心原理、内存优化策略和并行计算技巧,提升SAR成像精度与效率。

weixin_30908103的博客 298

Mac 环境配置jdk、Maven

3、终端打开配置jdk时候建好的脚本文件: open -e .bash_profile。4、查看maven是否安装成功和系统能不能识别maven/mvn命令:⬇️。输入⬇️并保存: 其中第一行JAVA_HOME替换为自己下的jdk路径。,安装编译好的二进制版本,具体安装zip还是tar.gz我看的。5、查看jdk是否安装成功和系统能不能识别java命令:⬇️。至此,我的Mac系统的环境配置jdk、Maven完成!然后就发现我的maven命令还是没作用,不识别,下载后直接安装即可,很快,点几下就OK了。

weixin_42416791的博客 4393

UITextField和UITextView限制字数(包括中文)

一直以来UITextField和UITextView的字数显示就困扰着我,特别当输入为中文输入法时 今天再搜索这个问题时看到了2位同学的博客,通过整合完成了对UITextField和UITextView的中文输入法字数限制 先感谢这两位同学http://blog.sina.com.cn/s/blog_60f977e70101g4gj.html && http://www.tuicool.com

zv_ios的博客 691

Excel VBA--按某一列拆分数据到多个文件

首先,将需要拆分的sheet命名为“明细”,接下来运行此代码,按提示操作即可。 在这里插入代码片 Sub chaifen() '定义变量类型 Dim sht, sh1, sh2 As Worksheet Dim k, i, j As Integer Dim irow As Integer Dim col As Integer Dim str As String '程序开始是要求输入按哪一列拆分数...

weixin_43650026的博客 5873

OC简单实现修改UITextField的输入字数的限制

简单实现修改UITextField的输入字数的限制 //初始化方法我就不写了,没啥必要 //假装我懒加载了一个UITextField:self.textfieldName ///下边开始正文 ///这段最好写到初始化方法里边 [_textfieldNameaddTarget:selfaction:@selector(textFieldEditChanged:)forControlEvents:UIControlEventEditingChanged]; - (void)text...

weixin_42611061的博客 455

MTK Meta ISP 工具使用技巧与参数读取路径全解析

在联发科(MediaTek, MTK)平台上进行相机图像调试时,Meta ISP 工具是连接 PC 与设备进行参数调整、寄存器读取和图像输出的重要工具。本文以实战角度出发,系统梳理 Meta ISP 的使用流程、关键模块功能、典型调试技巧与参数读取路径,结合最新版平台(如MTK Genio/Dimensity 系列)架构,帮助工程师掌握联发科图像调优的核心流程。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1147

openmediavault(OMV)(30)插件介绍(3)filebrowser文件管理器

filebrowser可以对omv的文件进行图形化管理,而不需要每次都通过命令进行修改。filebrowser安装。

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺的博客 2320

STM32F415ZG+DRV8818PWPR工业级步进驱动实战指南

步进电机驱动是工业自动化与机器人运动控制的基础技术,其核心在于微步精度、电流响应稳定性与实时闭环能力。理解H桥驱动原理、PWM相位同步机制及地线噪声抑制方法,是实现低速平稳、高速不失步的关键。结合Cortex-M4高性能MCU的定时器资源与智能驱动芯片的片内斩波/故障诊断功能,可构建抗干扰强、温升低、抖动小的嵌入式驱动系统。本文聚焦STM32F415ZG与DRV8818PWPR协同设计,深入解析微步磁场合成、S曲线加减速、nFAULT可靠性处理等产线验证方案,适用于协作机器人关节、视觉引导装配、AGV舵机等

weixin_33816946的博客 461

1、vectorCast单元测试常用操作

进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。

weixin_59334478的博客 2156

python限制输入长度_textFiled限制输入长度.

1.[textFieldaddTarget:selfaction:@selector(textFieldDidChange:)forControlEvents:UIControlEventEditingChanged];//添加监听事件2.-(void)textFieldDidChange:(UITextField*)textField{NSIntegerkMaxLength=8...

weixin_33286939的博客 979

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

iOS textfield 限制输入字数长度

iOS textfield限制输入的最大长度 [self.textFiled addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; -(void)textFieldDidChange:(UITextField *)textField { ...

dianchidu6913的博客 464

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)

项目中各个地方都会用到textField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textField的输入限制封装成在了一起,方便后续开发使用,代码量也减少了很多,这里把封装的View提供出来,有需要的可以参考一下(关于textView输入限制设置placeholder请参考我的文章i...

dianchidu6913的博客 846

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS 中textfield只允许输入字母和数字,限制长度

在textfield中添加以下代码 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{      if (textField == _pwdTextField) {      

jxy_fighting的博客 6396

限制textfiled输入字符长度

[self.textfiled addTarget:self action:@selector(textFieldChange) forControlEvents:UIControlEventEditingChanged]; - (void)textFieldChange{          NSString *toBeString = self.textfiled.text;

JasonSun的博客 462

textFiled限制输入长度.

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33712987的博客 130

iOS--判断字符串为null 与如何限制textFiled的输入长度

1.大家在判断字符串是否为null时,肯定第一时间就写出string != nil 奇怪的时,传过来的null值始终通过了验证。 查了一些资料,发现如果你时远程调用服务类,得到null值需要这样去判断 if([string isKindOfClass:[NSNull class]]){ } 2.在使用textFiled控件输入一些东西的时候...

diezhuo7608的博客 103

flutter TextField 限制输入长度,限制输入数字文字等类型

//限制长度 inputFormatters: [LengthLimitingTextInputFormatter(11)], //限制输入数字文字等类型 inputFormatters: [WhitelistingTextInputFormatter.digitsOnly], //键盘类型 keyboardType: TextInputType.text,

hzqit520的博客 1678

限制JTextField只能输入数字以及输入最大长度

/** * 方式一:通过添加键盘事件,判断键入的是否为数字 aacc * 不足:通过 复制粘贴 的方式可以写入英文字母 */ JTextField textField = new JTextField(); textField.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e)

Joy的专栏 1万+

自定义UItextFiled,限制TextFiled 的输入长度

1、一般情况下,处理textFiled的字符数都会用到textField的代理方法 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; 在方法中对字符数进行控制,但是此方法的有一定...

weixin_33825683的博客 134

设置TextFiled输入长度限制

#pragma mark - 显示超过11位不让输入 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if (textField == _nameTextFiled) { ...

weixin_30346033的博客 140

iOS textfiled限制长度

static const NSInteger kMaxLength = 15; [self.NickName addTarget:self action:@selector(textFieldChange) forControlEvents:UIControlEventEditingChanged]; //限定主题字数 15个 - (void)tex

ZZQCSN的博客 379

iOS开发中如何设置textfield输入长度并且仅仅只能输入数字

网上有很多限制textField输入长度方法和限制输入内容的方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度既又限制输入内容的方法. 我所采用的并不是监听方法而是最不同的代理实现方法,为什么不使用监听呢??? 当你看到这篇文章很有可能视是为一件事所苦恼那就是使用监听限制输入长度后不能够完美的控制输入内容. 举一个简单的例子:

qq_18235033的博客 3912
下一篇: 如何根据字数多少获取字符串对应高度
oneTagTag
博客等级 码龄11年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值