通过一行代码搞定UITextField的输入格式限制
ZASTextFieldFormat开发背景
在开发的过程中,每次写到UITextField,就不由得心里不爽,因为要考虑到各种输入限制,实现代理、通知等一些麻烦繁琐的东西,就心中不爽,所以才写了这个ZASTextFieldFormat (本地下载)简单的轮子,先暂时用着,等后期在慢慢优化完善。
ZASTextFieldFormat 简介
一行代码,设置UITextField的输入格式限制,比如手机号、身份证号、银行卡号格式以及输入字符类型个数的限制等;
接口说明
/** * ZASTextFieldFormatDelegate代理 * */ @property (nonatomic, assign) id<ZASTextFieldFormatDelegate> zasDelegate; /** * 设置浮点类型,只允许输入两位小数的浮点类型(default=NO) * */ @property (nonatomic, assign) Boolean isFloat; /** * 设置正则匹配模式(如果设置正则模式,则忽略其他格式限制) * */ @property (nonatomic, copy) NSString * pattern; /** * 设置UITextFiled格式控制的入口 (注:这个入口必须被调用) * format=nil或者""则不限制格式, charactersInString=nil或者""则不限制字符, maxLimit=0则不限制个数 * * 示例: 以手机号为例 * @param format 格式,eg: ### #### #### * @param charactersInString 支持输入的字符,eg: 0123456789 * @param maxLimit 最大输入限制个数,eg: 11 * 结果输入:159 1234 5678 */ - (void)textFieldWithFormat:(NSString *)format charactersInString:(NSString *)charactersInString maxLimit:(NSInteger)maxLimit;
具体使用
使原有UITextField继承自ZASTextFieldFormat,然后调用如何接口即可;
[_tfPhone textFieldWithFormat:@"### #### ####" charactersInString:@"0123456789" maxLimit:11];
参考Demo
点击此处获取Demo(本地下载)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
使用UITextField限制只可输入中,英文,数字的方法
前言 本文主要介绍使用UITextField限制只可输入中,英文,数字,我们可以使用NSPredicate正则表达式可以过滤,下面看看详细的步骤方法 首先设置UItextField的代理 实现如下方法: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([self isInputRuleA
-
iOS输入框(UITextField)密码明暗文切换方法
在做明暗文切换(密码输入框)的时候遇见一个坑,就是切换secureTextEntry的时候,输入框的光标会偏移,下面列出了一个解决办法及一种明暗文切换的方法 - (IBAction)pwdTextSwitch:(UIButton *)sender { // 前提:在xib中设置按钮的默认与选中状态的背景图 // 切换按钮的状态 sender.selected = !sender.selected; if (sender.selected) { // 按下去了就是明文 NSString *temp
-
iOS UITextField、UITextView只限输入中文、英文、数字及实时限制字符个数的封装实现代码
引言需求:(输入框限制输入多少字符) 1.一个字母.符号.数字相当于一个字符 2.一个汉字相当于两个字符 3.不能输入特殊字符 4.不能输入emoji表情 直接上代码 一.注册通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldChange:) name:UITextFieldTextDidChangeNotification object:nil]; [[NSNotifica
-
使用UITextField限制输入金额是正确小数
要判断输入金额为正确金额的方法有两个,一个是用正则表达式,另一个就是用textfield的代理方法 有时候难免遇到这样的需求,不符合规则的金额就不让输入时,那用这种方法比较合理 如果设置输入键盘为Decimal Pad时,输入为数字和小数点:如果设置键盘为Number Pad时,输入为纯数字 非以上情况时,那要判断输入时是否为合理输入,如代码里 复制代码 代码如下: (single >='0' && single<='9') || single=='.' 如果本身仅仅是输入数字
-
解决iOS7上UITextField限制字数输入导致崩溃问题的方法
在一些场景中,需要限制用户的输入字数,例如在textField里进行控制(textView也类似,崩溃原因也相同),如图所示 系统会监听文本输入,需要注意的第一点是输入法处于联想输入还未确定提交的时候,对于第三方输入法例如搜狗,联想状态下的输入,是监听不到,除非点击确定输入到textField,才会触发changed事件. 但对于系统键盘,联想状态下的输入也会监听,这里如果不处理就容易发生崩溃,例如当快要达到字数限制时,继续输入,此时textField.text =联想输入文字+textFiel
-
通过一行代码搞定UITextField的输入格式限制
ZASTextFieldFormat开发背景 在开发的过程中,每次写到UITextField,就不由得心里不爽,因为要考虑到各种输入限制,实现代理.通知等一些麻烦繁琐的东西,就心中不爽,所以才写了这个ZASTextFieldFormat (本地下载)简单的轮子,先暂时用着,等后期在慢慢优化完善. ZASTextFieldFormat 简介 一行代码,设置UITextField的输入格式限制,比如手机号.身份证号.银行卡号格式以及输入字符类型个数的限制等: 接口说明 /** * ZASTextFi
-
详解R语言数据合并一行代码搞定
数据的合并 需要的函数 cbind(),rbind(),bind_rows(),merge() 准备数据 我们先构造一组数据,以便下面的演示 > data1<-data.frame( + namea=c("海波","立波","秀波"), + value=c("一波","接","一波") + ) > data1 namea value 1 海波 一波 2 立波 接 3 秀
-
Okhttp、Retrofit进度获取的方法(一行代码搞定)
起因 对于广大Android开发者来说,最近用的最多的网络库,莫过于Okhttp啦(Retrofit依赖Okhttp). Okhttp不像SDK内置的HttpUrlConnection一样,可以明确的获取数据读写的过程,我们需要执行一些操作. 介绍 Retrofit依赖Okhttp.Okhttp依赖于Okio.那么Okio又是什么鬼?别急,看官方介绍: Okio is a library that complements java.io and java.nio to make it much
-
PHP基于关联数组20行代码搞定约瑟夫问题示例
本文实例讲述了PHP基于关联数组20行代码搞定约瑟夫问题.分享给大家供大家参考,具体如下: 记得前段时间一写做java开发的兄弟对我说他java60行做了个约瑟夫问题,挺不错的.调侃php应该写这个挺不行的. 于是 呵呵... 洋洋洒洒 20行,写完自己都有些不相信了.哈哈 让不了解php的见识哈php的快捷轻便之处. ps:其实个人挺反感用代码行数来衡量代码数量的,感觉常把代码行数挂嘴边的大多无奈装2.此文仅属闲余娱乐. 回顾一下约瑟夫问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最
-
3kb jQuery代码搞定各种树形选择的实现方法
自制Jquery树形选择插件. 对付各种树形选择(省市,分类..)90行Jquery代码搞定,少说废话直接上插件代码.稍后介绍使用说明.是之前写的一个插件的精简版. 1.Jquery插件代码 (function (j) { j.fn.attrs = function (option) { var root = this, data = []; //默认参数 var def = { url: '/ajax/GetSort/', str: root.attr("str") || '0',
-
超简单的几行代码搞定Android底部导航栏功能
超简单,几行代码搞定Android底部导航栏-–应项目需求以及小伙伴的留言,新加了两个方法: 设置底部导航栏背景图片 添加底部导航栏选项卡切换监听事件 底部导航栏的实现也不难,就是下边是几个Tab切换,上边一般是一个FrameLayout,然后FrameLayout中切换fragment. 网上有不少关于Android底部导航栏的文章,不过好像都只是关于下边Tab切的,没有实现Tab与fragment的联动,用的时候还要自己手写这部分代码,对我这个比较懒(据说,懒是程序员的一种美德_#)得程序员
-
批处理代码搞定Windows下Nginx+PHP(FastCGI)管理
注意修改下开始头部的几个变量的值 程序代码 复制代码 代码如下: SET NGINX_PATH=D: SET NGINX_DIR=D:\nginx-0.7.63\ SET PHP_DIR=D:\PHP\ ++++++++++++++++++代码开始++++++++++++++++ cls @ECHO OFF SET NGINX_PATH=D: SET NGINX_DIR=D:\nginx-0.7.63\ SET PHP_DIR=D:\PHP\ color 0a TITLE Nginx+PHP 管
-
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery.tex
-
神级程序员JavaScript300行代码搞定汉字转拼音
一.汉字转拼音的现状 首先应该说,汉字转拼音是个强需求,比如联系人按拼音字母排序/筛选:比如目的地(典型如机票购买) 按拼音首字母分类等等.但是这个需求的解决方案,但好像没听过什么巧妙的实现(特别是浏览器端),大概都需要一个庞大的字典. 具体到JavaScript,查查github和npm,比较优秀的处理汉字转拼音的库有pinyin 和pinyinjs,可以看到,两者都自带了庞大的字典. 这些字典动辄几十上百KB(有的甚至几MB),想在浏览器端使用还是需要一些勇气的.所以当我们碰到汉字转拼音的需
-
CMSPRESS 10行代码搞定 PHP无限级分类2
超级无限分类 使用简单 效率极高 核心代码10行不到 另外 求这个分类的不足,和更高效简单的无限分类方法 ^_^ 核心代码如下 class Tool { static public $treeList = array(); //存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空 /** * 无限级分类 * @access public * @param Array $data //数据库里获取的结果集 * @param Int $pid
随机推荐
- PHP跳转页面的几种实现方法详解
- 程序开发中的几个请不要相信
- windows Powershell 快速编辑模式和标准模式
- windows下直接点击startup.bat启动tomcat服务示例代码
- Oracle监听口令及监听器安全详解
- python通过线程实现定时器timer的方法
- asp.net上传execl文件后,在页面上加载显示(示例代码)
- Ubuntu VMware出现提示No 3D support is available的解决方法
- javascript不同类型数据之间的运算的转换方法
- php 生成签名及验证签名详解
- php将字符串全部转换成大写或者小写的方法
- golang、python、php、c++、c、java、Nodejs性能对比
- Python def函数的定义、使用及参数传递实现代码
- img的src地址是一个请求的方式来显示图片方法
- Android编程之播放器MediaPlayer实现均衡器效果示例
- Spring框架中 @Autowired 和 @Resource 注解的区别
- Android中ViewPager的PagerTabStrip与PagerTitleStrip用法实例
- Java异常处理实例分析
- javascript form 验证函数 弹出对话框形式
- PHP 二维关联数组根据其中一个字段排序(推荐)