On 19 Oct 2013, at 03:58, Jerry Krinock <je...@ieee.org> wrote: > > In Core Data documents, I ignore -[NSDocument isDocumentEdited] and instead > use > -[NSManagedObjectContext hasChanges]. > > "In OS X v10.6 and later, this property is key-value observing compliant." >
Unfortunately I am not using CoreData but the .NET Entity Framework. I use Dubrovnik (https://github.com/ThesaurusSoftware/Dubrovnik) to generate a set of ObjC -> .NET (Mono) bindings and then using Cocoa bindings to the generated Obj-C. One upshot of this that I don't have a KVO compliant - hasChanges property. The project uses bindings so my solution is track the change activity via the binding activity. All view bindings are made via a NSViewController subclass's -representedObject. Any control bound to a key path invoking self calls the setValue:forKeyPath: override and marks the document as changed. I don't know if this is a common technique but I use it regularly to track binding changes. - (void)setValue:(id)value forKeyPath:(NSString *)keyPath { // all bindings that reference self (such as self.representedObject.xxx) // will pass through this method if ([keyPath rangeOfString:@"self.representedObject."].location != NSNotFound) { [self.document updateChangeCount:NSChangeDone]; } [super setValue:value forKeyPath:keyPath]; } J _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com