gpt4 book ai didi

objective-c - NSUndoManager 和 runModalForWindow :

转载 作者:行者123 更新时间:2023-12-03 16:48:30 29 4
gpt4 key购买 nike

我有一个简单的核心数据应用程序,它在主窗口中显示实体列表。为了创建或添加新实体,我使用带有单独托管对象上下文的第二个模式窗口,以便可以撤消/重做更改,而不会干扰主托管对象上下文。

使用runModalForWindow:启动编辑窗口。如果我在此模式窗口中进行一系列离散更改,则执行单个撤消操作会导致撤消所有更改。我尝试将 NSUndoManager 的运行循环模式(从第二个托管对象上下文获取)设置为包含 NSModalPanelRunLoopMode ,但这似乎没有任何区别。

如果我不使用 runModalForWindow: 启动窗口,而只是使用 makeKeyAndOrderFront:,一切都会按预期工作。

有人遇到过这种情况吗?

凯文

最佳答案

您是否偶然在您的应用程序中使用了 Cocoa 应用程序工具包?不知道为什么它不会在您的主窗口上执行此操作,而仅在覆盖层上执行此操作..但这可能是正确的方向..

以下引用来自 Mac Dev Center, NSUndoManager Class Reference :

When performing undo an NSUndoManager saves the operations reverted so that you can redo the undos. If used in a Cocoa Application Kit-based application, NSUndoManager groups all operations within a single cycle of the run loop, so that performing an undo reverts all changes that occurred during the cycle.

关于objective-c - NSUndoManager 和 runModalForWindow :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1727045/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com