我有一个简单的Core Data应用程序,它在主窗口中显示实体列表。为了创建或添加新实体,我使用第二个模态窗口和一个单独的托管对象上下文,这样可以撤消/重做更改,而不会干扰主要的托管对象上下文。
使用runModalForWindow:
启动编辑窗口。如果我在此模态窗口中进行一系列离散更改,则执行单个撤消会导致撤消所有更改。我尝试将NSUndoManager
(从第二个托管对象上下文获取)的运行循环模式设置为包含NSModalPanelRunLoopMode
,但这似乎没有任何区别。
如果我不使用runModalForWindow:
启动窗口并只使用makeKeyAndOrderFront:
,则一切都按预期工作。
有没有人遇到过这个?
凯文
答案 0 :(得分:0)
您是否偶然使用Cocoa Application Kit进行应用?不知道为什么它不会在你的主窗口上,而只是在覆盖层上这样做..但这可能是在正确的方向..
以下引用来自Mac Dev Center, NSUndoManager Class Reference:
执行撤消NSUndoManager时 保存恢复的操作以便 你可以重做一下。如果用于 基于Cocoa Application Kit 应用程序,NSUndoManager组全部 单个周期内的操作 运行循环,以便执行 undo将还原所有发生的更改 在周期中。