Жест отмены тремя пальцами с пользовательским менеджером отмены - PullRequest
1 голос
/ 07 октября 2019

Я пытаюсь обработать жест тремя пальцами с помощью специального менеджера отмены. Использование менеджера отмены по умолчанию, предоставленного окном, разрешенного через цепочку UIResponder, работает безупречно. Как только я пытаюсь использовать собственный менеджер отмены в контроллере представления, у меня возникают проблемы. (Справочная информация. Я хочу переключаться между разными менеджерами в зависимости от состояния представления, поэтому я не могу использовать один диспетчер отмены, предоставляемый окном.)

Что я сделал:

  • переопределить undoManager в моем контроллере представления и вернуть собственный экземпляр
  • переопределить canBecomeFirstResponder и вернуть true
  • установить VC, чтобы быть первым ответчиком на viewDidAppear (Я также пробовал разные места для этого)

Что я наблюдаю:

  • три пальца делают не триггер undo на моем менеджере отмены, но в окне
  • жест встряхивания для отмены делает триггер undo в диспетчере отмены моего ВК

Теперь забавная часть: если ядобавьте UITextField (или UITextView) на мой взгляд, скажите, чтобы он стал первым респондентом, и сразу после того, как мой VC снова станет первым респондентом, жест с 3 пальцами работает ! Таким образом, кажется, что текстовое поле сообщает системе что-то , когда оно становится первым респондентом, который говорит наблюдателю жеста 3 пальцами не использовать диспетчер отмены окна. А при отставке первого ответчика обязанность правильно ложится на мой венчурный капитал.

У кого-нибудь есть идеи, что мне здесь не хватает?

...