美文网首页
iOS 中UITextField的secureTextEntry

iOS 中UITextField的secureTextEntry

作者: AnderQZ | 来源:发表于2020-03-24 10:39 被阅读0次

    一般密码都会有明文和密文的显示方式,但是常规调用UITextField的secureTextEntry做,会有两个常见的问题。

    第一个问题:切换密文secureTextEntry后,再次输入内容,明文时输入的内容自动清空了。

    解决:可以在切换完密文的方法中重新填充内容完成
    if (self.tfPassword.secureTextEntry) {
        [self.tfPassword insertText:self.tfPassword.text];
    }
    

    ⚠️注意:
    如果是一个页面有多个UITextField,那就要加上代理方法来处理了。

    #pragma mark - UITextFieldDelegate
    - (void)textFieldDidBeginEditing:(UITextField *)textField {
    if (textField == self.tfPassword && self.tfPassword.secureTextEntry) {
        [self.tfPassword insertText:self.tfPassword.text];
      }
    }
    

    第二个问题:从密文切换到明文后,光标位置停留在密文最后的位置,密文的每个字符宽度比明文字符宽度大时,会很难看。

    解决:可以在切换方法中,加上以下代码来处理
    NSString *tmpPwd = self.tfPassword.text;
    self.tfPassword.text = nil;
    self.tfPassword.secureTextEntry = !self.tfPassword.secureTextEntry;
    self.tfPassword.text =  tmpPwd;  

    相关文章

      网友评论

          本文标题:iOS 中UITextField的secureTextEntry

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