【发布时间】:2011-06-18 22:38:55
【问题描述】:
我想为 NSManagedObject 上的操作禁用撤消注册,但即使我明确调用 disableUndoRegistration,它仍会记录该操作。
我有什么明显的遗漏吗?
我还尝试分别在 viewWillAppear 和 viewWillDisappear 方法中启用/禁用。
这是一些示例代码...
#pragma mark -
#pragma mark NotesViewControllerDelegate methods
- (void)notesViewController:(NotesViewController *)controller didFinishWithSave:(BOOL)save
{
if (save)
{
[undoManager disableUndoRegistration];
[book setNotes:[controller getDataFromText]];
[undoManager enableUndoRegistration];
}
}
【问题讨论】:
-
我添加了对 [undoManager isUndoRegistrationEnabled] 的调用;返回 NO。但是我仍然可以撤消。怎么办?
-
我刚刚想到一个解决方案,即在对象与所有其他更改一起保存之前不设置对象数据。我认为这可以作为临时修复,但我想知道为什么撤消无法正常工作。
标签: ios objective-c iphone cocoa-touch undo