我有一个简单的核心数据应用程序,显示在主窗口中的实体列表。为了创建或添加新实体,我使用第二个模式窗口和一个单独的托管对象上下文,以便可以在不干扰主托管对象上下文的情况下撤消/重做更改。
使用runModalForWindow:启动编辑窗口。如果我在此模式窗口中进行了一系列离散的更改,执行一次撤消操作将导致撤消所有更改。我尝试将NSUndoManager (从第二个托管对象上下文获得)的运行循环模式设置为包含NSModalPanelRunLoopMode,但似乎没有任何区别。
如果我不使用runModalForWindow:启动窗口,而只是使用makeKeyAndOrderFront:,一切都会正常工作。
以前有没有人遇到过这种情况?
凯文
发布于 2009-11-13 21:47:01
您是否偶然将Cocoa应用程序工具包用于您的应用程序?不知道为什么它不能在你的主窗口上这样做,而只在覆盖上..但这可能是正确的方向..
以下引文摘自Mac Dev Center, NSUndoManager Class Reference
执行撤消时,NSUndoManager会保存恢复的操作,以便您可以重做撤消操作。如果在基于Cocoa application Kit的应用程序中使用,NSUndoManager会在运行循环的单个循环中对所有操作进行分组,以便执行撤消操作会还原循环期间发生的所有更改。
https://stackoverflow.com/questions/1727045
复制相似问题