gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:48:24 26 4
gpt4 key购买 nike

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/

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