苹果公司是否为Nserror的常见NSBUTTON标题提供本地恢复选项?
-
02-10-2019 - |
题
苹果是否为常见的NSButton标题提供本地化字符串,例如 好的, 取消, 再试一次, , 和 辞职?
我试图从另一个可可框架从一个手中创建一个自定义的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是否提供了一种轻松获取重新尝试/退出的本地化版本的方法(除其他常见的NSButton标题外)吗?还是我必须手动填充 .strings
文件和使用 NSLocalizedString()
反而?
Apple确实为非注定的NSERROR提供了局部恢复选项:
NSArray *recoveryOptions = [anError localizedRecoverySuggestion];
但这通常只是默认为本地化的“确定”。它不适合自定义 NSErrorRecoveryAttempting
.
解决方案
看来苹果没有。
不隶属于 StackOverflow