UITextField切换secureTextEntry状态时字体发生改变的解决办法

遇到个奇葩的事儿,难道是苹果的bug?就是当我在切换textfield是明文还是bullet的时候,textfield的字体自己改变了。。囧

UITextField切换secureTextEntry状态时字体发生改变的解决办法_第1张图片
改变了字体的textfield


奇葩的问题解决办法也很奇葩。第一反应当然是点切换状态的时候设置字体,思路是对的。。但可是。。真的不好使

!!!必须在设置字体前,清空字体。。代码如下:

textField.secureTextEntry = !textField.secureTextEntry;

textField.font = nil;

textField.font = [UIFont systemFontOfSize:16];



那如果改好了字的字体,又发现bullet不正常了的话。。。:


UITextField切换secureTextEntry状态时字体发生改变的解决办法_第2张图片
大圆点
UITextField切换secureTextEntry状态时字体发生改变的解决办法_第3张图片
小圆点

这种就很没道理有木有,囧, 那解决办法如下:

[textField resignFirstResponder];

textField.secureTextEntry = !textField.secureTextEntry;

取消第一响应那句一定要放在前面,要不然那明文的字体又不对了。。

这是我找到的比较好的解决办法了,虽然会把键盘收起,不过大体上不影响用户体验。还有一种方法是监听用户输入状态把明文转换成小圆点儿。。个人感觉有点坑。。

发生这种情况的原因尚不明,哪位大神知道还请不吝赐教啊啊啊。

你可能感兴趣的:(UITextField切换secureTextEntry状态时字体发生改变的解决办法)