iOS 13使用UIDocument和UICollectionViewController的撤消/重做手势

问题描述 投票:0回答:1

是否可以为整个UICollectionViewController(或UIViewController / UITableViewController)选择使用iOS 13的三指撤消/重做手势?

我有一个UIDocument通过它的undoManager来跟踪更改,我目前在此上调用undo / redo。但是,我想选择允许三指滑动/三指双击/命令+ z来调用撤消操作,并显示撤消/重做时弹出文本视图的新覆盖。

我已经尝试在我的视图控制器上将editingInteractionConfiguration设置为default,这似乎没有任何作用。

这可能吗?

ios uikit gesture undo nsundomanager
1个回答
0
投票

为了完成这项工作,我需要执行两个步骤。首先是使用以下命令将文档的撤消管理器返回为视图控制器的撤消管理器:

override var undoManager: UndoManager? { return document.undoManager }

[其次是使视图控制器成为第一响应者,如NSHipster's NSUndoManager article中有关响应较早的摇动手势的部分所述:

override var canBecomeFirstResponder: Bool { true }

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    becomeFirstResponder()
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    resignFirstResponder()
}

[我仍在寻找其他代码,以确保在显示包含文本字段的警报控制器后,视图控制器重新获得其第一响应者状态,但这实际上是一个不同的问题。

© www.soinside.com 2019 - 2024. All rights reserved.