UITextField has trailing whitespace after secureTextEntry toggle

后端 未结 18 1401
逝去的感伤
逝去的感伤 2020-12-29 19:27

I have a button that toggles between Show/Hide mode (i.e. toggles a UITextField between secureTextEntry NO and YES). The purpose of which is to allow the user to see the pa

18条回答
  •  青春惊慌失措
    2020-12-29 20:09

    This work for me on iOS 8

    if (self.passwordTextField.secureTextEntry) {
        // Display password and keep selected text range
        UITextRange *selectedTextRange = self.passwordTextField.selectedTextRange;
        NSString *password = self.passwordTextField.text;
        self.passwordTextField.secureTextEntry = NO;
        self.passwordTextField.text = [@"" stringByPaddingToLength:password.length withString:@" " startingAtIndex:0]; // Done for carret redrawing
        self.passwordTextField.text = password;
        self.passwordTextField.selectedTextRange = selectedTextRange;
    }
    else {
        // Hide password and keep selected text range
        UITextRange *selectedTextRange = self.passwordTextField.selectedTextRange;
        NSString *password = self.passwordTextField.text;
        self.passwordTextField.secureTextEntry = YES;
        self.passwordTextField.text = [@"" stringByPaddingToLength:password.length withString:@" " startingAtIndex:0]; // Done for carret redrawing
        self.passwordTextField.text = password;
        self.passwordTextField.selectedTextRange = selectedTextRange;
    }
    

提交回复
热议问题