Пользовательский UIView с вводом с клавиатуры?

У меня есть собственный подкласс UILabel для отображения значений валюты. Я только хочу, чтобы пользователь мог вводить цифры и позволять представлению форматировать эти цифры в денежную ценность - как в кассовом аппарате. Это делает UITextField неподходящим выбором для такого типа ввода.

Я уже переопределил hitTest: так что UILabel вернется сам - это, по-видимому, ошибка. Кроме того, я переопределил как canBecomeFirstResponder, так и статьFirstResponder, чтобы вернуть YES. Однако ни один из этих методов не вызывается.

Я хочу только позволить пользователю вводить числа и использовать клавишу Backspace. Я реализовал UITextInputTraits, но клавиатура не появляется. Итак, можно ли это сделать? И если да, то что мне не хватает?


person Alex    schedule 09.11.2008    source источник
comment
Возможно, вы пробовали создать подкласс UIControl и обернуть экземпляр UILabel?   -  person postmechanical    schedule 04.11.2015


Ответы (2)


Я сделал что-то подобное. Подкласс UITextField, сделайте цвет текста ясным и приклейте поверх него метку для отображения отформатированной версии.

edit - на самом деле, строго говоря, вам даже не нужно создавать подклассы. Просто реализуйте метод делегата (-textField: shouldChangeCharactersInRange: replaceString :), добавьте метку в UITextField и отформатируйте текст метки, как вам нужно.

person Noah Witherspoon    schedule 09.11.2008

Хорошо, я ответил на свой вопрос: UILabel, помещенный поверх UITextView, также скроет точку вставки, но все равно может стать первым респондентом и получить ввод.

Спасибо!

person Alex    schedule 09.11.2008