Я пытаюсь обработать жест тремя пальцами с помощью специального менеджера отмены. Использование менеджера отмены по умолчанию, предоставленного окном, разрешенного через цепочку UIResponder, работает безупречно. Как только я пытаюсь использовать собственный менеджер отмены в контроллере представления, у меня возникают проблемы. (Справочная информация. Я хочу переключаться между разными менеджерами в зависимости от состояния представления, поэтому я не могу использовать один диспетчер отмены, предоставляемый окном.)
Что я сделал:
- переопределить
undoManager
в моем контроллере представления и вернуть собственный экземпляр - переопределить
canBecomeFirstResponder
и вернуть true
- установить VC, чтобы быть первым ответчиком на
viewDidAppear
(Я также пробовал разные места для этого)
Что я наблюдаю:
- три пальца делают не триггер
undo
на моем менеджере отмены, но в окне - жест встряхивания для отмены делает триггер
undo
в диспетчере отмены моего ВК
Теперь забавная часть: если ядобавьте UITextField
(или UITextView
) на мой взгляд, скажите, чтобы он стал первым респондентом, и сразу после того, как мой VC снова станет первым респондентом, жест с 3 пальцами работает ! Таким образом, кажется, что текстовое поле сообщает системе что-то , когда оно становится первым респондентом, который говорит наблюдателю жеста 3 пальцами не использовать диспетчер отмены окна. А при отставке первого ответчика обязанность правильно ложится на мой венчурный капитал.
У кого-нибудь есть идеи, что мне здесь не хватает?