Это правда? Когда вы создаете экземпляр UIAlertButton, вы должны передать ему явное название кнопки "Отмена" , например:
UIAlertView *av =
[[UIAlertView alloc]
initWithTitle:@"Error"
message:err.localizedDescription
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
Это означает, что если вы хотите локализованное приложение (которое, конечно же, вы это делаете), вы также должны локализовать строку "Отмена" , хотя 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 (например, "Отмена" или "ОК" ), кажется столь же абсурдной.