这是真的?当你实例化一个 UIAlertButton 时,你必须为它传递一个明确的 Cancel 按钮标题,像这样:
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
这意味着如果你想要一个本地化的应用程序(当然你会这样做),你也必须本地化 Cancel 字符串,即使 Apple 显然已经有了一个规范的翻译。我真的被迫写这样的东西来处理它(或者这甚至可以吗)?
NSBundle* uikitBundle = [NSBundle bundleForClass:[UIButton class]];
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error", @"Title for Alert box when error occurs")
message:err.localizedDescription
delegate:nil
cancelButtonTitle:NSLocalizedStringFromTableInBundle(@"Cancel", @"Localizable", uikitBundle, nil)
otherButtonTitles:nil];
这对我来说看起来很可怕,但是我必须维护自己对 Apple HIG 规定的单词的翻译(如“取消”或“确定”)的想法似乎同样荒谬。