我有一个基于 CoreData 的应用程序,它支持摇动撤销。这目前工作正常,但是当我摇动设备时,撤消会立即发生,而不会首先显示 NSUndoManager 通常免费提供的常用撤消提示。
我从“撤消架构”文档中阅读了“在 iPhone 上使用撤消”,并且我是:
- 执行
canBecomeFirstResponder
,返回YES
becomeFirstResponder
制作视图控制器viewDidAppear
resignFirstResponder
制作视图控制器viewDidDisappear
- 将视图控制器中的重新声明
self.undoManager
为读/写 - 在方法中创建一个
NSUndoManager
和设置(我已经验证它被调用)。self.undoManager
UIViewController
init
- 在设置
self.managedObjectModel.managedObjectContext.undoManager
器self.undoManager
中设置为managedObjectModel
. 再一次,我已经验证这被调用了。如果我不这样做,撤消根本不起作用。
我已经尝试过的故障排除:
- 检查撤消确实有效(我看到对我的 managedObjectModel 的更改已恢复)
canBecomeFirstResponder
正在调用验证- 检查是否
self.undoManager
在撤消操作期间调用了访问器(不是)。
所以我的问题是:
- 在什么情况下撤消有效但不显示撤消提示?
- 您接下来会尝试什么来解决此问题?