![]() |
1
3
实际上,只要在-undo和-redo之前调用enableUndoRegistration(在它们之后调用disableUndoRegistration),您就可以实现您所追求的目标。 我相信您只是在对托管对象进行更改之前和之后调用了enable(/disable)undorregistration。这意味着您的“undo”没有在undo管理器中注册,因此您不能“重做”。 |
![]() |
2
1
我已通过以下方式解决此问题: 始终启用撤消注册,但明确不希望记录撤消的情况除外。 我了解到: 如果在执行要记录的更改之前启用撤消注册,并在提交这些更改之后立即禁用,则不会填充nsundomanager的重做堆栈。
所以,不要打电话
|
![]() |
3
1
我在启用“重做”的同时调用了disableundomanager。为此,我对nsundomanager进行了子类化,并包含了以下方法:
如Stefanf在 NSUndoManager, Core Data and selective undo/redo :“nsundomanager等待下一个运行循环,直到它注册您的更改” |
![]() |
Danil · 种子/填充核心数据的最佳实践?[关闭] 4 月前 |
![]() |
Vincent · SwiftUI与表单中的CoreData绑定 1 年前 |
|
user13990880 · 需要在核心数据中保存打乱的顺序 1 年前 |