iPhone: Могу ли я сделать UIDatePicker поверх UIKeyboard? - PullRequest
4 голосов
/ 11 октября 2011

Что я пытаюсь сделать:

У меня есть стандартный UITableView, с несколькими UITextFields и несколькими ячейками, показывающими время / дату. По сути, это форма, в которую пользователи могут вводить как текст, так и даты.

Как это должно работать:

  • Сначала не отображаются ни клавиатура, ни указатель даты.
  • Если сначала выбрать текстовое поле, появится клавиатура. И наоборот для выбора даты (который появляется с похожей анимацией).
  • Если изначально было выбрано текстовое поле, а затем пользователь выбирает ячейку времени, то UIKayboard должен превратиться в указатель даты (без анимации). Точно так же должно произойти, когда наоборот.

Что не работает:

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

Мой метод состоял в том, чтобы просто анимировать одновременно клавиатуру и дату, но соответственно установить свойство «скрытый» для средства выбора даты.

-

Есть идеи, как добавить что-нибудь перед клавиатурой? Могу ли я создать еще одно окно поверх всего сразу после добавления клавиатуры? Или использовать свойство accessoryView, но как-то транспонировать кадр?

В противном случае, есть ли альтернативные способы достижения моей первоначальной цели?

Спасибо:)

1 Ответ

8 голосов
/ 11 октября 2011

Даже проще, чем прослушивание уведомлений клавиатуры, понять, что UITextField является подклассом UIResponder, что означает, что он обладает свойством inputView.Вы можете просто создать UIDatePicker, установить его как inputView вашего текстового поля, и все готово.(плюс все, что вам нужно сделать, чтобы фактически извлечь дату из сборщика).

Единственным недостатком этого подхода является то, что, хотя он очень хорошо работает для портретной ориентации на iPhone, вам нужно будет немного поработать, чтобы все выглядело правильно в ландшафте и на iPad.Тем не менее, это то же самое, что вам придется делать в любом случае.

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