首页 > 解决方案 > iOS 13 撤消/重做手势的手势识别器在哪里?

问题描述

iOS 13 中的新功能,三个手势被解释为请求撤消和重做:

检测这些手势的手势识别器在哪里?我会做些什么来覆盖它们,关闭它们,或者在它们和我自己的手势之间进行仲裁?

标签: iosuigesturerecognizerios13undo

解决方案


看起来有一个名为的私有类UIUndoGestureRecognizer附加到 a UIEditingOverlayGestureView,它位于 aUIInputSetContainerView内部UITextEffectsWindowUndoManager(为了解决这个问题,我在's处理程序中放置了一个断点,registerUndo并尝试用三个手指向左滑动,然后在生成的堆栈跟踪和汇编代码中四处寻找,直到找到手势识别器实例。)

您可能可以使用 in 中的方法在UIGestureRecognizerDelegate手势识别器和这些系统识别器之间进行仲裁,并且您可以editingInteractionConfiguration在视图控制器或视图中覆盖以返回.none,以便完全关闭它们。


推荐阅读