如何在ios中切换隐藏和查看密码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ios中切换隐藏和查看密码?相关的知识,希望对你有一定的参考价值。

是否有一种聪明的方法让用户在ios / iphone UITextField中隐藏和查看密码之间切换,用户可以在其中输入密码,并可以选择隐藏或查看密码。提前致谢。

答案

简单的设定

.secureTextEntry = YES

如果textField具有焦点,我认为由于一个错误(或一个功能)我不会工作。

如果textField当前是firstResponder,请使用类似的内容使其工作

-(void) toggleTextFieldSecureEntry: (UITextField*) textField {
    BOOL isFirstResponder = textField.isFirstResponder; //store whether textfield is firstResponder

    if (isFirstResponder) [textField resignFirstResponder]; //resign first responder if needed, so that setting the attribute to YES works
    textField.secureTextEntry = !textField.secureTextEntry; //change the secureText attribute to opposite
    if (isFirstResponder) [self.textField becomeFirstResponder]; //give the field focus again, if it was first responder initially
}
另一答案
- (IBAction)ShowPass:(UIButton *)sender {
    if (self.password.secureTextEntry == YES) {
        [self.showPass setTitle:@"HIDE" forState:(UIControlStateNormal)];
        self.password.secureTextEntry = NO;   
    }else{
        [self.showPass setTitle:@"SHOW" forState:(UIControlStateNormal)];
        self.password.secureTextEntry = YES;
    }
}
另一答案

马里奥的答案很好,给了我很多帮助。

但是,如果在文本字段中使用自定义字体,则从安全条目更改为纯文本后,文本字段的文本将使用错误(非自定义)字体绘制,直到用户输入另一个字符。

通过一点点破解,我能够通过模拟代码中的字符输入来解决这个问题。

这个修改过的Mario代码适用于具有自定义字体的字段:

- (void)toggleTextFieldSecureEntry:(UITextField *)textField {
    BOOL isFirstResponder = textField.isFirstResponder;

    if (isFirstResponder) {
        [textField resignFirstResponder];
    }

    textField.secureTextEntry = !textField.secureTextEntry;

    if (isFirstResponder) {
        [textField becomeFirstResponder];
    }

    // When using custom font and changing from secure entry to plain text, the text is initially drawn with wrong font
    // until a next character is input by user. This hack fixes the font immediatelly (simulate add and delete character)
    if (!textField.isSecureTextEntry) {
        [textField insertText:@"x"];
        [textField deleteBackward];
    }
}
另一答案

你可以使用secureTextEntryUITextField属性。当你想隐藏(为每个角色显示点)你可以使用yourTextField.secureTextEntry=YES;当你想显示密码时使用yourTextField.secureTextEntry=NO;

另一答案

对于Swift,只有赋值从YES / NO变为true / false布尔值。

password.secureTextEntry = true //Visible
password.secureTextEntry = false //InVisible

以上是关于如何在ios中切换隐藏和查看密码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS的另一个部分中单击切换时隐藏表格视图部分

在Android Studio片段之间切换时地图片段不隐藏

如何在Swift中切换UITextField安全文本条目(隐藏密码)?

IOS swift实现密码的显示与隐藏

隐藏子屏幕/片段的android底部导航视图

如何在 Android 中显示和隐藏菜单项?