#swift #objective-c #unicode #uitextfield #ios15
Вопрос:
Я работаю над проектом, в котором есть текстовые поля пароля, похожие на текстовые поля OTP, которые допускают только один символ в защищенном текстовом поле.
В этом также есть поддержка backspace. Когда текстовое поле становится первым ответчиком, символ юникода @»u200B» добавляется в текст текстового поля.
Моя проблема в том, что он отлично работает до iOS 14, но не в iOS 15, символ юникода в защищенном текстовом поле принимает его как символ и отображает текст в текстовом поле.
Проблема возникает только в том случае, если текстовое поле допускает безопасный ввод текста.
Ниже приведен код, который я использовал в демонстрационном проекте, чтобы показать проблему:
- (void)viewDidLoad {
[super viewDidLoad];
[txtUser setSecureTextEntry:false];
[txt1 setSecureTextEntry:true];
txtUser.text = @"u200B";
txt1.text = @"u200B";
}
В приведенном выше коде пользователь TXT не разрешает безопасный ввод текста, но txt1 разрешает безопасный ввод текста.
Ниже приведены скриншоты как iOS 14, так и 15:
Результат iOS 14:
Нормально: https://i.stack.imgur.com/l2ZPd.png
Смешанные слои цветов: https://i.stack.imgur.com/XupKH.png
Результат iOS 15:
Нормально: https://i.stack.imgur.com/Wtj46.png
Смешанные слои цветов: https://i.stack.imgur.com/MB33H.png
Я хочу получить тот же результат в iOS 15, что и в iOS 14. Я искал так много решений, но пока не нашел правильного!
Спасибо!!