Bietet Apple lokalisierte Zeichenfolgen für häufige NSButton-Titel an, wie z. B. die Äquivalente zu OK, Abbrechen, Erneut versuchen und Beenden?
Ich versuche, ein benutzerdefiniertes NSError-Objekt aus einem mir von einem anderen Cocoa-Framework übergebenen zu erstellen. Ich möchte das informelle Protokoll NSErrorRecoveryAttempting
implementieren, um dem Benutzer die Möglichkeit zu geben, Erneut zu versuchen oder Beenden, wenn ein Fehler auftritt. Zum (kurzen) Beispiel:
NSString *cachesDir = ...;
NSError *error = nil;
BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:cachesDir withIntermediateDirectories:NO attributes:nil error:&error];
// Das Verzeichnis konnte nicht erstellt werden.
if (!success)
{
NSMutableDictionary *errorUserInfoCopy = [[[error userInfo] mutableCopy] autorelease];
NSArray *recoveryOptions = [NSArray arrayWithObjects:@"Erneut versuchen", @"Beenden", nil];
[errorUserInfoCopy setObject:recoveryOptions forKey:NSLocalizedRecoveryOptionsErrorKey];
NSError *newError = [NSError errorWithDomain:[error domain] code:[error code] userInfo:errorUserInfoCopy];
[NSApp presentError:newError];
}
In Zeile 10, NSArray *recoveryOptions = ...
, bietet Apple eine Möglichkeit, lokalisierte Versionen von Erneut versuchen/Beenden (unter anderen gängigen NSButton-Titeln) einfach zu erhalten? Oder muss ich manuell .strings
-Dateien befüllen und stattdessen NSLocalizedString()
verwenden?
Apple bietet lokalisierte Wiederherstellungsoptionen für nicht angepasste NSError's:
NSArray *recoveryOptions = [anError localizedRecoverySuggestion];
Aber dies fällt normalerweise nur auf ein lokalisiertes "OK" zurück. Es ist nicht für benutzerdefiniertes NSErrorRecoveryAttempting
geeignet.