Почему NSSecureTextField НЕ поддерживает строки в некоторых языках?

Я заметил, что не могу ввести русский или арабский текст в NSSecureTextField,

Если моя клавиатура установлена ​​на русский язык, например, как только я нажму на NSSecureTextField, моя клавиатура автоматически меняется на английский, который затем возвращается к русскому, когда я существую NSSecureTextField.

Точно так же я не могу установить клавиатуру на арабский, пока NSSecureTextField активен

Там может быть больше языков, кроме арабского и русского.

Почему не NSSecureTextField поддержка паролей на некоторых языках? Есть ли проблемы с безопасностью? Это сломает OSX Keychain?

Мне нужно знать, чтобы, если я переопределил это поведение, я знал о возможных побочных эффектах.

Во-вторых, есть ли обычай NSSecureTextField как управление, которое поддерживает все языки? Мой поиск вернул ноль.

1 ответ

Решение

NSSecureTextField ограничивает доступные методы ввода, чтобы избежать отображения текста пароля в виде встроенного текста или в окне редактирования. Это также отключает некоторые комбинации "мертвой клавиши" с несколькими клавишами, используемые, например, для ввода ударных символов.

О методах ввода

Некоторые методы ввода отображают ваш ввод в промежуточной форме перед его фиксацией, чтобы позволить вам выполнять специфичные для языка или системы системные операции, которые специально интерпретируют щелчки и ввод с клавиатуры при вводе текста. Некоторые отображают текст "встроенный" в текстовом представлении, где текст в конечном итоге заканчивается, а некоторые отображают промежуточный ввод в отдельном плавающем окне.

Например, метод ввода Hiragana для японского языка отображает встроенный текст, в котором вы можете выбрать различные интерпретации ввода перед его фиксацией в текстовом содержимом. Другой пример - при вводе акцентированных символов через "мертвые клавиши", где вы сначала вводите ударение, а затем базовую клавишу: ударение отображается в виде встроенного текста, выделенного желтым цветом.

Другие вопросы по тегам