2

Apple は、 OKCancelTry AgainQuitに相当するものなど、一般的な NSButton のタイトルにローカライズされた文字列を提供していますか?

別の 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 は (他の一般的な NSButton タイトルの中でも) Try Again/Quit のローカライズされたバージョンを簡単に入手する方法を提供していますか? .stringsまたは、ファイルを手動で入力してNSLocalizedString()代わりに使用する必要がありますか?

Apple は、カスタマイズされていない NSError に対してローカライズされた回復オプションを提供しています。

NSArray *recoveryOptions = [anError localizedRecoverySuggestion];

ただし、これは通常、ローカライズされた「OK」にデフォルト設定されています。カスタムには向きませんNSErrorRecoveryAttempting

4

1 に答える 1

0

Apple はしていないようです。

于 2010-10-12T18:55:30.103 に答える