gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:34 27 4
gpt4 key购买 nike

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

我有一个 Core Data 应用程序,我正在使用它的 NSUndoManager 作为我窗口的撤消管理器。它工作得很好,但是当用户对字段进行更改时(从 NSTableView 内联),撤消菜单项的标题不会反射(reflect)更改的字段。

最初的搜索让我找到了发布在 Apple Mailing Lists 上的相同问题2007 年 1 月。唯一发布的答案是 “在核心数据编程指南中搜索‘Model.strings’。”我的模型没有字符串文件,所以我创建了一个(本地化在我的 en.lproj 目录中并使用 UTF-16 编码),但这没有任何区别。

我遵循了 Apple 的 tutorial 的说明(因为我的应用程序不是基于文档的,所以略有调整),并且 Core Data documentation ,但我的菜单标题仍然显示为“撤消”和“重做”。

最佳答案

在你的 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)];
}

关于objective-c - 撤消核心数据更改的操作名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com