我正在寻找一个内置(或易于实现)的方式来获得核心数据撤消/重做动作名称读起来像"撤消编辑的名字",而不是简单的"撤消"或"重做",因为他们默认情况下。
我有一个核心数据应用程序,并使用其NSUndoManager
作为我的窗口的撤消管理器。它工作得很好,但是当用户更改字段(从NSTableView
内联)时,Undo菜单项的标题不反映更改了哪个字段。
我遵循了苹果的教程(因为我的应用程序不是基于文档的)和Core Data文档的说明,但我的菜单标题仍然是"撤销"one_answers"重做"。
在NSManagedObject子类中添加
-(void)setValue:(id)value forKey:(NSString *)key
{
NSUndoManager * aUM = [[self managedObjectContext] undoManager];
[super setValue:value forKey:key];
if ([aUM isUndoRegistrationEnabled])
[aUM setActionName:NSLocalizedString(key,nil)];
}