- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的核心数据应用程序,它在主窗口中显示实体列表。为了创建或添加新实体,我使用带有单独托管对象上下文的第二个模式窗口,以便可以撤消/重做更改,而不会干扰主托管对象上下文。
使用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/
我正在尝试创建一个 iPhone 应用程序,用户可以在其中添加条目。当他按下新条目时,会弹出一个框,询问他一些信息。然后他可以按“取消”或“保存”来放弃数据或将其保存到磁盘。 为了保存,我使用了 Co
如何在使用 prepareWithInitationTarget 时设置与设置撤消操作相同的特定重做操作 使用我的方法,重做不起作用(撤消有效) - (void)removeSmth:(Smth *)
以下是启用撤消功能的代码,摘自 Aaron Hillegas 所著的《cocoaprogramming for OS X》一书: -(void)removeObjectFromEmployeesAtI
我正在编写一个基于非NSDocument的应用程序,其风格类似于AddressBook.app。它有一个位于 MainMenu.nib 中的窗口。 目前,我正在努力将 NSUndoManager 与此
我有一个复杂的情况,我有一个 View Controller 和几个 subview Controller 。 情况A:当我更改 subview Controller 时,我将更改记录在NSUndoM
当值是引用类型时,我无法理解 NSUndoManager 如何捕获值。每当尝试使用 undoManager 时,这些值都不会撤消。 注意:我需要支持 macOS 10.10,我使用的是 Swift 3
我有一个应用程序,我想在每次更改之前保存项目的当前状态,以便撤消和重做能够在这些状态中来回切换。当我更改保存位置的代码时: if(!undoManager){ undoManager = [[
我正在尝试将撤消/重做功能集成到 UITextView(我正在构建一个 LateX 编辑器)中,但没有成功,老实说,我对这个论点真的很困惑。我不明白这两个操作涉及的步骤,我的意思是我需要两种方法 删除
核心数据支持开箱即用的撤消/重做。但它的表现出乎意料。 为了使我的用户界面与我的模型保持同步,我发送了通知。我的用户界面收到通知消息并更新受影响的 View 。 @objc(Entity) class
我有一个 NSView 对象,它接收 mouseDragged 事件,该事件会更改在其各自 View 中绘制的对象的位置。然后,在我的 NSViewController 类中,它检索该新位置并将该新值
我想了解/复制NSUndoManger的“按运行循环传递/循环分组”功能:当在同一运行循环周期中多次调用时, NSUndoManager 可以将对 registerUndo() 的多次调用分组为单个“
我注意到如果我说类似的话 [self.undoManager setActionName: @"X & Y"]; 然后生成的菜单项看起来像“撤消 X Y”(X 和 Y 之间有一个双倍空格)。 (在 M
我正在开发一个核心数据应用程序,该应用程序具有相当大的托管对象层次结构,类似于树。 当创建一个基础对象时,它会创建一些子对象,这些子对象又创建自己的子对象,依此类推。这些子对象中的每一个都可以使用 N
我有一个与部门具有多对一关系的托管对象 Employee。因此,一个员工可以在一个部门中,但部门可以包含多个员工。 我使用撤消管理器来注册某些员工的删除。之后我关闭撤消注册我删除部门。部门删除会删除所
我有一个应用程序,它允许用户上下移动 UIView,使一个 View 看起来可以在另一个 View 之上。通过使用 exchangeSubviewAtIndex 方法更改父 View 中 UIView
在我的应用中,用户能够在对象之间快速来回切换并编辑这些对象上的文本。 当他们按下“撤消”时,我想调出相关对象,以便他们可以看到他们正在执行的撤消。 这些对象是 NSManagedObject 子类的实
我不仅需要将更改保存到本地核心数据中,还需要保存到服务器上。 我担心的是,就我而言,用户可以在短时间内进行大量交互。交互之间没有足够的时间接收服务器返回的成功消息。因此,要么我锁定 GUI,直到下一条
NSUndoManager 将发生在同一个运行循环中的调用组合在一起。 我想加载一个包含撤消历史记录的文档。 因此,我创建了一个文档并一个一个地应用调用,但是这些调用都非常快速地添加,导致一次撤消。
我有一些简短的 iOS Objective-C 示例代码(从一个较大的项目中简化而来)导致 NSUndoManager 崩溃,我无法解释。 即,当一个对象仅由 NSUndoManager 持有时 de
我正在尝试在使用 GLKit 的 iOS 应用程序中支持撤消/重做. 当我尝试以下操作时: GLKVector3 currentTranslation = _panningObject.transla
我是一名优秀的程序员,十分优秀!