Если ваш UIView
содержит ваш UITableView
, то табличное представление находится наверху цепочки респондента, и сенсорные события не попадут в ваш взгляд. Но может быть лучший способ сделать это. Что ты после?
UPDATE
Реализация UITextFieldDeletate
'textFieldShouldReturn:
метода для перехвата нажатия' Return ':
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Кроме того, UITableViewDelegate является UIScrollViewDelegate, поэтому вы можете подключиться к этим методам, чтобы определить, когда пользователь взаимодействует с табличным представлением.
Вообще говоря, я думаю, вам не нужно беспокоиться о немедленном отключении клавиатуры, когда пользователь касается ее, особенно если у вас есть другие текстовые вводы на том же экране.
Moar
Хорошо, достаточно справедливо, но все становится сложным, когда вы перехватываете события касания с помощью составных прозрачных представлений (это может также дорого обойтись) и так далее. И вы никогда не знаете последствий, которые могут возникнуть в будущем, не только для пользователя, но и для вас, программиста, когда вы захотите обновить приложение в будущем.
Почему бы не сделать это простым? Как насчет просто «Готово» UIBarButtonItem
или небольшого полупрозрачного UIToolbar
, которое скользит вверх по клавиатуре / сборщику аля Mobile Safari? Эти решения приемлемы для пользователя и могут облегчить его жизнь. Они, безусловно, облегчают разработку, разделяя артефакты и функциональность на модульные блоки.
Одна заключительная нота
Использование UITapGestureRecognizer Я думаю, что будет трудно разобраться в вашей ситуации. Я обеспокоен тем, что любой распознаватель касаний, который вы добавляете в представление таблицы, будет препятствовать таким вещам, как выбор строки или перемещение элемента управления в другой элемент пользовательского интерфейса (текстовое поле, переключатель и т. Д.).