English 中文(简体)
NSUndoManager and runModalForWindow:
原标题:

I have a simple Core Data app which displays a list of entities in the main window. To create or add new entities, I use a second modal window with a separate managed object context so changes can be undone/redone without interfering with the main managed object context.

The editing window is launched using runModalForWindow:. If I make a series of discrete changes in this modal window, doing a single undo results in undoing ALL my changes. I tried setting the run loop modes of NSUndoManager (obtained from the second managed object context) to contain NSModalPanelRunLoopMode but that didn t appear to make any difference.

If I don t launch the window using runModalForWindow: and simply use makeKeyAndOrderFront:, everything works as expected.

Has anyone run into this before?

Kevin

问题回答

Are you by chance using the Cocoa Application Kit for your application? Not sure why it wouldn t do that on your main window, and only on the overlay.. but this might be in the right direction..

The following quote is from the 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.





相关问题
Asynchronous request to the server from background thread

I ve got the problem when I tried to do asynchronous requests to server from background thread. I ve never got results of those requests. Simple example which shows the problem: @protocol ...

objective-c: Calling a void function from another controller

i have a void, like -(void) doSomething in a specific controller. i can call it in this controller via [self doSomething], but i don t know how to call this void from another .m file. I want to call ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

NSUndoManager and runModalForWindow:

I have a simple Core Data app which displays a list of entities in the main window. To create or add new entities, I use a second modal window with a separate managed object context so changes can be ...

NSMutableArray values becoming "invalid"

I m trying to show a database information in a tableview and then the detailed information in a view my problem is as follow: I created a NSMutableArray: NSMutableArray *myArray = [[NSMutableArray ...

iPhone numberpad with decimal point

I am writing an iPhone application which requires the user to enter several values that may contain a decimal point (currency values, percentages etc.). The number of decimal places in the values ...

热门标签