цифровая панель iPhone с десятичной точкой - PullRequest
2 голосов
/ 09 ноября 2009

Я пишу приложение для iPhone, которое требует от пользователя ввода нескольких значений, которые могут содержать десятичную точку (валютные значения, проценты и т. Д.). Количество десятичных разрядов в значениях варьируется. Проблема в том, что цифровая клавиатура не содержит клавиши для ввода десятичной точки.

Когда я блокирую свой телефон, на цифровой клавиатуре, которая появляется для ввода пароля, есть настраиваемая кнопка для экстренного вызова (как показано на следующем снимке экрана):

Цифровая панель с пользовательской кнопкой http://img25.imageshack.us/img25/6426/photoejg.jpg

Кто-нибудь знает, как создать цифровую клавиатуру с помощью кнопки с десятичной запятой или пользовательской кнопки (как кнопка экстренного вызова выше)?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 09 ноября 2009

Нет одобренного Apple способа редактирования существующей клавиатуры. Если вы хотите, чтобы они это разрешили, подайте запрос на добавление функции.

Тем не менее, так получилось, что в большинстве приложений клавиатура (экземпляр UIKeyboard) является отдельным UIWindow, и вы можете перебирать окна в приложении и начинать добавлять пользовательские подпредставления, которые реагируют на соответствующие сенсорные действия. Найдите его, выполнив итерацию по [[UIApplication sharedApplication] windows] и проверив, содержит ли описание строку UIKeyboard. Для получения дополнительной информации об этом методе и некотором примере кода см. этот ответ .

Другой подход заключается в создании собственного пользовательского представления и создании клавиатуры с нуля. Будьте осторожны, если вы сделаете это, так как это требует много ручной работы, не только при создании клавиатуры и настройке сенсорного поведения в соответствии с Apple, но и при добавлении любого элемента управления, который будет вызывать обычную клавиатуру - вы ' Вам нужно будет перенаправить такие вещи, как becomeFirstResponder, чтобы показать собственную клавиатуру, а не Apple.

Редактировать: Как указал ZaBlanc, в более новых версиях iOS есть способ сделать это с помощью свойств inputView и inputAccessoryView. Подробности смотрите в справочнике UIResponder .

4 голосов
/ 31 декабря 2011

установить UIKeyboardType в UIKeyboardTypeDecimalPad

Доступно в iOS 4.1 и более поздних версиях.

1 голос
/ 09 ноября 2009

Создайте UIViewController, который содержит UIView с кучей кнопок. Теперь на вашей клавиатуре может быть все, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...