Я пытаюсь реализовать объект UIResponder, который позволит мне записывать действия на экране, а затем передавать событие следующему респонденту, чтобы приложение могло работать как обычно.Я изучал это некоторое время и вижу два способа, которые должны работать: либо создать корневое представление и игнорировать касания в подпредставлениях, размещенных поверх него, что позволяет корневому представлению обрабатывать их;ИЛИ создайте GestureRecognizer, который добавляется ко всем подпредставлениям.Мое приложение имеет несколько представлений, которые меняются местами в главном окне.
Я испробовал оба метода и оказался в одном и том же тупике: я получаю события touchesBegan / touchesMoved / touchesEnded в моем представлении (илиRecognizer), но ничего не происходит, когда я отправляю их по цепочке респондента.Я перепробовал все следующее.Обратите внимание, что «view» происходит от touch.view, а view.superview - это мой объект «loginView», который содержит кнопку, которая была нажата, чтобы получить меня здесь:
[view hitTest:frame.origin withEvent:event];
[view touchesBegan:touches withEvent:event];
[view.superview hitTest:frame.origin withEvent:event];
[view.superview touchesBegan:touches withEvent:event];
[[view nextResponder] touchesBegan:touches withEvent:event];
[[view nextResponder] hitTest:frame.origin withEvent:event];
[[[view superview] nextResponder] touchesBegan:touches withEvent:event];
[[view superview] hitTest:frame.origin withEvent:event];
Ничего из этого не работает, и вфакт '[[view nextResponder] hitTest ...' генерирует предупреждение.
Я попробовал resignFirstResponder и даже собирался попробовать sendAction, но сейчас я просто цепляюсь за соломинку.Я попытался поместить свой взгляд в нижней и верхней части цепочки и получить те же результаты.Очевидно, что я что-то упускаю, но я не вижу, что.
Может кто-нибудь подсказать мне, что делать дальше?
- Сэм