UIActivityViewController - 如何更改取消按钮文本

7

有人知道如何更改UIActivityViewController标准取消按钮的文本值吗? 默认情况下为"Cancel"。但我想将其更改为不同语言。

怎么做呢?谢谢!

4个回答

3

更新:下面的代码只适用于iOS7。

像Rikkles所说的,您不需要自定义文本来使其本地化。但以防万一有人有充分理由这样做,这是代码:

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


是的,因为它现在看起来像是一个UIAlertAction。而且它没有外观代理。 - cocoapriest

1
你无法这样做。然而,取消按钮默认是本地化的。顺便提一下,如果你想要的话,你可以创建自己的控制器,并且可以用UIActivity对象填充它。请注意,当您查看该类时,文档中提到的activityController是任何UIViewController

我不想创建自己的控制器(但可能需要)。只想更改“取消”按钮的文本,正如你所说,这可能是不可能的 :( 当我更改本地化设置时,“取消”并没有改变,它仍然是“取消”。 - Sid
现在我明白了,我需要更多地学习国际化,而不是关于为UIActivityViewController更改文本。谢谢。 - Sid
那是一个广阔的主题... :) - Rikkles

1

正如其他人所指出的,按钮是由系统本地化的,您无法更改它。至少在iOS 11上是这样的。但我也遇到了这个问题,即使在更改系统语言后,按钮仍保持其“取消”标题。

这篇文章帮助我成功地将共享表的“取消”按钮本地化,并在倒计时模式中使用了UIDatePicker,该模式之前也曾抵制过系统本地化尝试:为什么UIActivityViewController不显示本地化的取消字符串?

将此行添加到您的info.plist中:

enter image description here


0

谢谢。我的评论和Rikkles的一样。 - Sid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接