美文网首页iOSiOS小菜鸟变身小牛教程iOS学习笔记
UITextField切换secureTextEntry状态时字

UITextField切换secureTextEntry状态时字

作者: ChangeMakerO_O | 来源:发表于2016-02-25 13:53 被阅读962次

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

    改变了字体的textfield

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

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

    textField.secureTextEntry = !textField.secureTextEntry;

    textField.font = nil;

    textField.font = [UIFont systemFontOfSize:16];



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

    大圆点 小圆点

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

    [textField resignFirstResponder];

    textField.secureTextEntry = !textField.secureTextEntry;

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

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

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

    相关文章

      网友评论

      • 云逸枫林: if (!self.passwordText.secureTextEntry) {
        self.passwordText.font = nil;
        self.passwordText.font = [UIFont systemFontOfSize:12];
        }
        这样圆点的大小就不会变化了
      • 漂泊的煙烣:demo可以给参考下么? 谢谢 iosyong@163.com
      • 泽小记:iOS10上这个问题已经没了
        Henrya:是的,我觉得是苹果的bug
      • 7a946bf5d2ca:[textField resignFirstResponder];
        这样做就行 密码也会清除 淘宝也是这样的 点击明文之后键盘会收回 然后从明文转密文时会清空
      • 狍子君:NSString *tempStr = self.passwordTextField.text;
        self.passwordTextField.text = nil;
        self.passwordTextField.text = tempStr;

        self.passwordTextField.secureTextEntry = ! self.passwordTextField.secureTextEntry ;
      • Wang66:我也遇到过这个问题。
      • 李大戮:请教下密码框的小眼睛是自定义button还是系统有的?
        星___尘:@李大帅 [textFiled becomeFirstResponder];就可以解决长度不对应的问题
        李大戮:@ChangeMakerO_O 哦,rightview已搞定。就密码框小眼睛密码明文显示和密文显示的时候,textfield的光标位置怎么实现与之长度对应。因为我点明文显示之后,光标还是在密文显示时候的那个位置。
        ChangeMakerO_O:@李大帅 自定义的咯
      • _nameless:曾被这个问题困扰过

      本文标题:UITextField切换secureTextEntry状态时字

      本文链接:https://www.haomeiwen.com/subject/zivikttx.html