Во-первых, вам нужна пользовательская ячейка таблицы, ваш собственный подкласс UITableViewCell
.В этой реализации вам нужно реализовать hitTest:
, чтобы определить, где произошло касание.В этом методе вы можете определить, действительно ли касание было внутри прямоугольника вашего UITextField, и, если оно было, сделать его первым респондентом.Вот пример из некоторого кода, который я написал для проекта:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if (self.editing) {
if ([nickname pointInside:[self convertPoint:point toView:nickname] withEvent:nil])
return [nickname hitTest:[self convertPoint:point toView:nickname] withEvent:event];
return [super hitTest:point withEvent:event];
}
return [self contentView];
}
Атрибут nickname
, в данном случае, был UITextField внутри пользовательского UITableViewCell.
Условие вокруг себя.редактирование может иметь или не иметь отношение к вашему приложению.Идея здесь в том, чтобы показать вам, как можно использовать hitTest: в общем.