撤消核心数据更改的操作名称

2024-04-12

我正在寻找一种内置(或易于实现)的方法来让核心数据撤消/重做操作名称读起来像“撤消编辑名字”,而不是像它们那样简单地“撤消”或“重做”默认情况下。

我有一个核心数据应用程序,并且正在使用它NSUndoManager作为我的 Windows 撤消管理器。它工作得很好,但是当用户对字段进行更改时(从NSTableView),撤消菜单项的标题不反映哪个字段发生了更改。

最初的搜索使我发现了发布在上的相同问题苹果邮件列表 http://lists.apple.com/archives/cocoa-dev/2007/Jan/msg01137.html2007 年 1 月。唯一发布的答案是“在核心数据编程指南中搜索‘Model.strings’。”我的模型没有字符串文件,因此我创建了一个(在我的 en.lproj 目录中本地化并使用 UTF-16 编码),但这没有什么区别。

我按照苹果的指示进行操作tutorial http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/NSPersistentDocumentTutorial/06_CustomisingErrors/errors.html#//apple_ref/doc/uid/TP40002834-SW3(稍作调整,因为我的应用程序不是基于文档的),并且核心数据文档 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdUsingMOM.html#//apple_ref/doc/uid/TP40005190-SW13,但我的菜单标题仍然显示“撤消”和“重做”。


在您的 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)];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

撤消核心数据更改的操作名称 的相关文章

随机推荐