Показывать UIDatePicker внутри UIPopoverController после закрытия UIKeyboard - PullRequest
3 голосов
/ 06 июня 2011

Я вытаскиваю свои волосы этим.

У меня есть таблица внутри поповера, которая позволяет пользователю редактировать некоторые данные. Большинству этих редактируемых ячеек требуется, чтобы пользователь вводил данные через клавиатуру, но для этого нужен UIDatePicker. Когда UIDatePicker представляется пользователю, он скользит от нижней части всплывающего окна, захватывая размер представления и выполняя анимацию. Однако, если это происходит после того, как клавиатура отклонена, тогда размер представления захватывается до того, как поповер возвращается в исходное положение (т. Е. Когда поповер изменяет размеры до нормального размера после того, как его «раздавили» к верхней части экрана) Это оставляет UIDatePicker на полпути вверх по поповеру.

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

Как мне дождаться окончания изменения размера всплывающего окна, прежде чем я возьму размер вида и выполню анимацию?

Обновление 1

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

Обновление 2

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

Любые люди идеи?

1 Ответ

2 голосов
/ 13 июня 2011

Решено.

Когда клавиатура отклоняется в делегате popover, я проверяю, отображается ли popover, а затем перемещаю его в исходный размер и местоположение.У меня есть код, если кому-то интересно.Просто прокомментируйте меня.

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