Я занимаюсь разработкой приложения для iPhone, в котором есть корзина для покупок, и использую UITableView для отображения корзины.Для каждого элемента есть ячейка, а для -tableFooterView
установлено пользовательское представление, которое дает пользователю текстовое поле для проверки CVV их кредитной карты и кнопку для завершения процесса оформления заказа.
Когда пользовательв текстовом поле CVV я изменяю размер таблицы так, чтобы клавиатура ничего не закрывала.
- (void)keyboardWillShow:(NSNotification *)n
{
// I'll update this to animate and scroll the view once everything works
self.theTableView.frameHeight = self.view.frameHeight - KEYBOARD_HEIGHT_PORTRAIT_IPHONE;
}
После ввода CVV пользователь может нажать клавишу Готово, чтобы закрыть клавиатуру:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Все это работает, однако, пока клавиатура видна, моя проверкаКнопка (обычная кнопка UIB) не реагирует на сенсорные события.Таблица прокручивается, но событие touchUpInside кнопки никогда не запускается.
После нажатия кнопки Готово и отклонения клавиатуры кнопка извлечения распознает события touchUpInside.
Из того, что я видел, видно, что любая кнопка, покрытая клавиатурой, не реагирует на мои прикосновения (даже если она прокручивается из-за клавиатуры), пока клавиатура не будет закрыта.Кнопки в этом же -tableFooterView, которые никогда не закрываются клавиатурой, остаются чувствительными к касанию, пока клавиатура видна.
То же поведение при работе на iOS 5 и iOS 4.
Может кто-нибудь предложитькакие-либо предложения о том, что может происходитьИли какие-нибудь полезные идеи для устранения неполадок?
Спасибо!
Редактировать - обновить
Фактически, часть tableFooterView, которая покрыта клавиатуройне отвечает на сенсорные события.В моем пользовательском подклассе UIView я реализовал -touchesBegan:withEvent:
и просто регистрировал, что произошло касание.
При касании в любом месте представления отображается оператор журнала перед отображением клавиатуры.Однако после изменения размера табличного представления только касание верхней части представления создает оператор журнала.
Также я только что понял, что часть tableFooterView, которая была покрыта клавиатурой, превращается в цвет фона содержащего представления, когда я прокручиваю эту часть, чтобы она стала видимой.