cocoa - Apple 是否为 NSError 的常见 NSButton 标题提供本地化恢复选项?

标签 cocoa localization nserror nslocalizedstring

Apple 是否为常见 NSButton 标题提供本地化字符串,例如相当于 OKCancelTry Again退出

我正在尝试从另一个 Cocoa 框架交给我的对象创建一个自定义 NSError 对象。我想实现 NSErrorRecoveryAttempting 非正式协议(protocol),让用户在发生错误时重试退出。对于(简短的)示例:

NSString *cachesDir = ...;
NSError  *error     = nil;
BOOL     success    = [[NSFileManager defaultManager] createDirectoryAtPath:cachesDir withIntermediateDirectories:NO attributes:nil error:&error];

// Failed creating the directory.
if (!success)
{
 NSMutableDictionary *errorUserInfoCopy = [[[error userInfo] mutableCopy] autorelease];

 NSArray *recoveryOptions = [NSArray arrayWithObjects:@"Try Again", @"Quit", nil];
 [errorUserInfoCopy setObject:recoveryOptions forKey:NSLocalizedRecoveryOptionsErrorKey];

 NSError *newError = [NSError errorWithDomain:[error domain] code:[error code] userInfo:errorUserInfoCopy];
 [NSApp presentError:newError];
}

在第 10 行,NSArray *recoveryOptions = ...,Apple 是否提供了一种轻松获取 Try Again/Quit 本地化版本(以及其他常见 NSButton 标题)的方法?或者我必须手动填充 .strings 文件并使用 NSLocalizedString() 来代替?

Apple 确实为非自定义 NSError 提供了本地化恢复选项:

NSArray *recoveryOptions = [anError localizedRecoverySuggestion];

但这通常只是默认为本地化的“OK”。它不适合自定义 NSErrorRecoveryAttempting

最佳答案

苹果似乎没有。

关于cocoa - Apple 是否为 NSError 的常见 NSButton 标题提供本地化恢复选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167434/

相关文章:

ios - 使用 Couchbase Lite 在 Mac 应用程序中保存树形数据结构

objective-c - NSToolbar 中的 NSPopUpButton 太烦人了

android - 是否可以根据国家/地区设置应用在 google play store 上的描述?

objective-c - 此类与键错误的键值编码不兼容

swift - Swift 中基于调用的撤消管理器

cocoa - 我可以将应用程序的默认行为设置为不在通知中心显示通知吗?

python - 如何找出当前系统首选语言是什么

cocoa - 本地化编辑菜单和其他标准菜单

iphone - NSError 奇怪的问题 - 应用程序在尝试访问 NSError 的属性时崩溃

ios - NSError 是否可以在 TBXML 中重用?