iOS——密码明文/密文切换问题
来源:互联网 发布:wince同步软件 win7 编辑:程序博客网 时间:2024/05/22 07:56
欢迎进入我的个人域名博客:http://zhoulingyu.com
前段时间根据产品经理的要求给我们输入密码的部分加了明文/密文切换,中间也遇到了一些颇有意思的问题。其中也有些很难查到资料。
在这里记录下来,也供大家参考,避免大家重复踩坑。
情景描述
明文/密文切换,就是输入密码的时候可以选择明文显示
还是**
这样的显示。
右侧的按钮可以切换明文、密文模式
UITextField明文\密文切换属性的属性
@property(nonatomic,getter=isSecureTextEntry) BOOL secureTextEntry; // default is NO
Q1:光标位置错乱
一般来说密文的时候*号要比字母更宽,当密文切换成明文的时候光标的位置居然没有变化,出现了这样的情况。
这个问题在查了一些资料之后发现可能是苹果自己的BUG,当然,对应方法是有的。我们可以在切换代码前将textfiled的enable设为NO,切换后在设置YES。当然,这回让textfiled退出编辑模式。
如果你有更好的方式,欢迎交流,或者在博文后留言
self.tfPassword.enabled = NO; self.tfPassword.secureTextEntry = !self.tfPassword.secureTextEntry; self.tfPassword.enabled = YES;
Q2:光标位置错乱
当UITextField经历 明文->密文->明文
时,再次输入,无论你输入什么,都会将所有输入清空。
嗯,这确实是个头疼的问题,也没有任何理由,因为UITextField本身如此,而且当时真的想不到任何办法。
最后终于解决。
思路是这样的:我们都只到UITextField的代理UITextFieldDelegate中有方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
相信每个人都会常用,通常我们用来抓用户输入的文字,在每次textfield发生字符改变的时候。
但是我们忽略了这个方法的本身作用,注意返回值,这个方法本身是用来返回『是否允许改变textfield字符』
。
所以只要在这里做判断:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { //string就是此时输入的那个字符 //得到输入框的内容 NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; if (textField == _tfPassword && textField.isSecureTextEntry ) { textField.text = toBeString; return NO; } return YES;}
完美解决
代码
唔,这篇也给个代码吧,其实只有几行。
http://download.csdn.net/detail/u010127917/9472703
其他
其实很多奇怪的问题只有在实际开发的时候发现,这时候你就会认识到自己的经验不足。所以啦,学无止境~。
过段时间妹子我会奉上自己的照片哦~(好久没自拍啦~~)
有什么问题都可以在博文后面留言,或者微博上私信我。
博主主要写javaee和iOS的。
希望大家一起进步。
CSDN: CSDN博客地址
我的微博:小鱼周凌宇
- iOS——密码明文/密文切换问题
- UITextField 密码明文及密文切换问题
- UITextField 密码明文及密文切换问题
- Android密码明文密文切换
- Android开发之密码明文密文切换显…
- 安卓 密码输入的明文和密文切换
- Android开发之密码明文密文切换显示
- EditText密码输入切换密文和明文
- 设置密码输入框明文和密文切换
- Android实现设置密码明文密文切换
- 密码框明文暗文切换
- EditText 明文和密码切换
- Android中输入密码明文密文切换功能的实现
- Android自定义EditText——带一键清除和密码明文切换按钮,支持多样式选择
- 解决Centos 6使用svn时本地使用明文密码的问题,保存密文密码
- 密码显示明文密文的demo
- 密码设置为明文和密文
- 密码明文密文控制的EditText
- Netty系列之Netty可靠性分析
- Netty系列之Netty高性能之道
- leetcode之Repeated DNA Sequences
- Java中Date( )与Calendar( )简单算法
- Netty系列之Netty安全性
- iOS——密码明文/密文切换问题
- 解决Reporting Services目录数据库文件存在的问
- Apache Mahout 简介
- unity3d网格(mesh)编程的研究
- 利用Redis的有序集合做购物车商品相关性分析
- Jsp九大内置对象和四种作用域
- 属性文件工具类
- Java ConcurrentHashMap 最佳实践
- 虚拟机centos网络配置