2016-12-28 3 views
1

У меня есть пользовательский интерфейс, который включает в себя поле ввода пароля и кнопку show/hide. Тестер указал на следующее непоследовательное поведение.Текстовое поле пароля очищается при переключении кнопки show/hide password

Если пароль скрыт и введен наполовину (например, «abc»), и пользователь нажимает кнопку переключения, чтобы отобразить пароль и продолжает печатать, новые символы (например, «def») добавляются в конец начальная запись (создание «abcdef»). Все хорошо и хорошо.

Однако, если пароль отображается и вводится наполовину (например, «abc»), и пользователь нажимает кнопку переключения, чтобы скрыть пароль и продолжает печатать, новые символы (например, «def») заменяют начальную запись («def»). Таким образом, show/hide toggle не только отображает или скрывает текст, но также изменяет поведение UITextField (добавление/очистка и начало работы) при вводе следующего символа.

Почему это происходит?

+0

Пожалуйста, введите код, который вы используете. – SNarula

+0

, пожалуйста, поделитесь своим кодом –

+0

Нет необходимости смотреть на код, чтобы понять, что происходит, как [Dheeraj D] (http://stackoverflow.com/a/41359943/2305521). – fpg1503

ответ

1

Правильно это нормальное поведение UITextField и вы можете исправить это с помощью:

textField.clearsOnBeginEditing = NO; 

Или в Swift:

textField.clearsOnBeginEditing = false 

Но это не будет работать, если вы используете безопасный текст для пароля.

См Один из ответа:

Secure UITextField Answer

0

вы можете реализация эффект, который вы хотите, изменить свое мнение.

вы можете установить NSString * pwd, чтобы сохранить пароль пользователя, когда пользователь вводит или заменяет пароль, вы изменяете значение pwd, убедитесь, что ваш pwd всегда соответствует введенному паролю пользователя.

Когда пользователь нажимает кнопку переключения, вы показываете значение pwd в текстовом поле.

Смежные вопросы