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];

enter image description here


как отмечают другие, кнопка локализована системой, вы не можете ее изменить. По крайней мере на iOS 11. Но я тоже боролся с этим, и кнопка сохранила свой Cancel название даже после смены языка системы.

этот пост помог мне успешно локализовать кнопку отмены листа акций и работал над UIDatePicker на режим таймера обратного отсчета который сопротивлялся предыдущим попыткам локализации системы:Почему UIActivityViewController не отображается локализованная строка отмены?

добавьте эту строку в свой info.plist:

enter image description here


кнопка отмены будет локализована. Также вы можете попробовать REActivityViewController