Изображение Caps Lock на UITextField, защищенном паролем

Я создаю приложение, которое требует использования USB-клавиатуры. (Обычная клавиатура сенсорного экрана отключена и не отображается.) Когда пользователь устанавливает приложение в первый раз, ему нужно будет создать четырехзначный PIN-код. Поле для ввода PIN-кода защищено паролем (точки будут появляться каждый раз при вводе новой цифры). Пин UITextField настроен только на четыре цифры, кроме четырех. Любые другие буквы / цифры не будут добавлены в UITextField. Вот как это выглядит -

Ссылка на изображение.

Проблема здесь в том, что когда пользователь нажимает кнопку Caps Lock на USB-клавиатуре, изображение Caps Lock появляется в UITextField. Однако поле принимает только числа, поэтому я не хочу показывать изображение с заглавными буквами в текстовом поле. Есть ли способ удалить изображение Caps Lock?


person Chris Diggs    schedule 08.05.2017    source источник


Ответы (3)


Добавление фиктивного представления в rightView помогло. Спасибо за вклад.

textField.rightView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
person Chris Diggs    schedule 08.05.2017
comment
Хорошо @Chris Diggs - person Ananta Prasad; 29.05.2019

Нет чистого способа сделать это (насколько я знаю), но это можно сделать, поместив белое изображение на место, где появляется блокировка заглавных букв.

Таким образом, изображение Caps Lock всегда будет скрыто.

Обязательно поместите элемент управления NSImageView после элемента управления NSSecureTextView (в UI Builder), чтобы изображение было нарисовано после рисования элемента управления NSSecureTextView.

person eli-bd    schedule 08.05.2017

Вы можете добавлять изображения в текстовый файл, как показано в примере кода, приведенном ниже:

Быстрое добавление значка / изображения в UITextField

Но чтобы проверить, включен ли у вас Caps Lock или нет, я думаю, что нет правильного способа сделать это. Возможно, вы можете проверить в методе "textFieldShouldReturn", если набранный символ является прописным или строчным, каждый раз, когда пользователь вводит символ.

person Zohaib Hassan    schedule 08.05.2017