2

Apple 是否为常见的 NSButton 标题提供本地化字符串,例如OKCancelTry AgainQuit的等价物?

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

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

4

1 回答 1

0

苹果似乎没有。

于 2010-10-12T18:55:30.103 回答