时间:2021-05-02
前言
大家应该都知道,密码框有个常见的需求:用一个按钮切换密码的明文/密文显示。点一下显示明文,再点一下显示密文。
本来是个很简单的需求,因为 uitextfield 有securetextentry这个属性可以用。
发现问题
但没想到,简单的一句代码并不能解决问题:
? 1 2 3 - (ibaction)secureswitchaction:(id)sender { self.passwordtextfield.securetextentry = !self.passwordinputtextfield.securetextentry; }问题在于,在切换明文/密文的时候,如果切换前后的字符串宽度不一样,字符串末尾到光标之间会出现一大段空白。
切换之后,光标前面有一段空白
官方文档里也没提这件事,估计又是官方实现的一个 bug 了。
解决方法
好在只需要简单加几句代码:
? 1 2 3 4 5 6 7 - (ibaction)secureswitchaction:(id)sender { self.passwordtextfield.securetextentry = !self.passwordtextfield.securetextentry; nsstring* text = self.passwordtextfield.text; self.passwordtextfield.text = @" "; self.passwordtextfield.text = text; }就能解决问题了。
p.s.我当时还查到了一篇文章 只用一行代码[self.passwordinputtextfield becomefirstresponder];就能解决这个问题,只是副作用是会让输入焦点切换到密码框。如果不介意的话,用这个方法也可以。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.jianshu.com/p/72271c023d6d
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
摘要:现在有一个需求如图所示,当用户勾选显示明文复选框时,要以明文显示用户输入的密码,去掉勾选时要变回密文,刚开始想到的就是修改输入框的type来决定显示明文还
直接双击打开excel2010文件(XLSorXLSx)时的“向程序发送命令时出现错误”的问题根源找到了。关掉COM插件的加载后问题解决
IOS下获取rootviewcontroller的版本不同的问题解决办法一般原生的[[UIApplicationsharedApplication].keyWi
gedit中文乱码问题解决,windows下的文档在linux下乱码问题解决:打开终端输入以下命令:复制代码代码如下:gsettingssetorg.gnome
1.按键字符错乱或无效。按下FN+INS键来尝试解决问题。 问题解决-->数字小键盘开启。 问题未解决-->查杀病毒。 问题解决-->病毒问题引起。