UIActivityViewController - как изменить текст кнопки "Отмена"
кто-нибудь знает, как изменить стандартное текстовое значение кнопки отмены UIActivityViewController? По умолчанию это "отмена". Но я хочу изменить его, например, чтобы он был на другом языке.
Как это сделать? Спасибо!
4 ответов
ты не можешь. Однако по умолчанию кнопка "Отмена" локализована.
Кстати, вы можете создать свой собственный контроллер, если это то, что вы хотите. И вы можете заполнить его UIActivity
объекты. Обратите внимание, что когда вы смотрите на этот класс, когда врачи говорят о activityController
, это UIViewController
.
Update: код ниже работал только на iOS7.
Как сказал Рикклз, вам не нужно настраивать текст, чтобы сделать его локализованным. Но на всякий случай, если у кого-то есть веская причина для этого, вот код:
NSArray *activityItems = @[@"Test"];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
NSAttributedString *as = [[NSAttributedString alloc] initWithString:@"Custom Text" attributes:@{NSForegroundColorAttributeName:[UIColor greenColor]}];
[[UIButton appearanceWhenContainedIn:[UIActivityViewController class], nil] setAttributedTitle:as forState:UIControlStateNormal];
[self presentViewController:activityController animated:YES completion:nil];
как отмечают другие, кнопка локализована системой, вы не можете ее изменить. По крайней мере на iOS 11. Но я тоже боролся с этим, и кнопка сохранила свой Cancel
название даже после смены языка системы.
этот пост помог мне успешно локализовать кнопку отмены листа акций и работал над UIDatePicker
на режим таймера обратного отсчета который сопротивлялся предыдущим попыткам локализации системы:Почему UIActivityViewController не отображается локализованная строка отмены?
добавьте эту строку в свой info.plist
:
кнопка отмены будет локализована. Также вы можете попробовать REActivityViewController