2015-05-23 2 views
7

У меня есть пользовательский inputView для определенного текстового поля, и он работает хорошо. Однако я не могу различить, как отклонить представление и вернуть обычную клавиатуру. (У меня есть кнопка SWAP рядом с TextField.) Я попробовал установить входное поле текстового поля в ноль, но это ничего не делало.Поменяйте пользовательский inputView для стандартной клавиатуры в iOS

Мне не нужна полная пользовательская клавиатура, но мне нужно больше, чем вид аксессуаров над клавиатурой, поэтому я пробую этот маршрут. Мне нужно около 20 пользовательских кнопок в дополнение к обычной клавиатуре, и мне не нравится идея огромного аксессуара, занимающего столько места.

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

Благодарим вас за любые предложения.

ответ

9

Я думаю, что вы, вероятно, придется сделать это:

  1. вызов resignFirstResponder на UITextField
  2. После анимации заканчивается, установите inputView в nil
  3. вызов becomeFirstResponder на текстовом поле

Продолжительность анимации клавиатуры отправляется в дикторе userInfo y на уведомлениях о презентации клавиатуры.

+0

спасибо! Также оказалось, что было легко поймать уведомление, чтобы пользователь мог просто поменять клавиатуру и пользовательский ввод туда и обратно. Отлично! –

4

В дополнение к принятым ответ, вы можете использовать reloadInputViews() (и это менее вероятно, перенесут любые анимации глюки, вытекающие из resignFirstResponder, becomeFirstResponder называет):

  1. yourTextField.inputView = nil;
  2. yourTextField.reloadInputViews();

Дополнительная информация на сайте Apple's Docs.

Смежные вопросы