Подкласс UIViewController не получает касания Начался iphone ipad - PullRequest
1 голос
/ 02 сентября 2010

Итак, я подкласс UIViewController и в перо у меня есть UIView, и в нем табличное представление. Насколько я понимаю, и UIViewController, и UIView являются подклассами UIResponder, поэтому они должны получать - (void) touchesBegan: (NSSet *) touch с событиемEE:: (UIEvent *) способ.

Однако это не тот случай, и мой подкласс контроллера представления не получает этот метод. Я бы очень хотел не создавать подкласс UIView, если все в порядке.

Я пытаюсь реализовать это , но мой

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [textfield resignFirstResponder];
}

Не вызывается.

Ответы [ 4 ]

5 голосов
/ 02 сентября 2010

Это зависит от того, где вы касаетесь.Если вы касаетесь в табличном представлении, касания отправляются в табличное представление, а не в контроллер представления.Если вы коснетесь текстового поля, которое находится в вашем представлении, прикосновения будут отправлены в сам UITextField.Если вы коснетесь вне табличного представления, вне текстового поля, но в представлении контроллеров представления, тогда контроллеры представления должны получить те касания.

1 голос
/ 02 сентября 2010

Если вы измените представление вашего VC на UIControl (UIControl - это суперкласс UIView) в IB, вы можете назначить ему IBAction.В этом действии вы можете использовать текстовое поле resignFirstResponder.

0 голосов
/ 02 сентября 2010

UIView, о котором вы говорите, это тот, который вы создали, или вы используете тот, который поставляется с UIViewController? Более того, если щелчок происходит в UITableView, вам придется создать подкласс этого класса, чтобы ваш UIViewController знал, что щелчок произошел в табличном представлении ...

0 голосов
/ 02 сентября 2010

К сожалению, touchesBegan имеет место только в представлении, несмотря на то, что UIViewController является подклассом UIReponder.Документы для касаний начинают говорить так.

Сообщает получателю, когда один или несколько пальцев касаются в окне или окне .

...