Objective c 如何一次在整个应用程序中更改文本对齐方式?

Objective c 如何一次在整个应用程序中更改文本对齐方式?,objective-c,localization,text-alignment,Objective C,Localization,Text Alignment,是否有办法通过编程一次更改整个应用程序中所有文本元素(即文本文件、按钮标题、标签、导航栏标题等)的对齐方式?实际上,我正在开发一个多语言应用程序,它有一种文本对齐方式为RTL的语言。我不想手动设置每个文本元素的对齐方式。存在一些限制,因此NSTechAlignmentNatural无法解决我的问题。实际上,语言的翻译是通过API实现的,而且也是unicode格式的。那么,系统将如何检测将要显示的语言,以便确定对齐方式。将所有这些元素替换为您自己创建的精简自定义类,您可以根据区域设置连接以更改此属

是否有办法通过编程一次更改整个应用程序中所有文本元素(即文本文件、按钮标题、标签、导航栏标题等)的对齐方式?实际上,我正在开发一个多语言应用程序,它有一种文本对齐方式为RTL的语言。我不想手动设置每个文本元素的对齐方式。存在一些限制,因此NSTechAlignmentNatural无法解决我的问题。实际上,语言的翻译是通过API实现的,而且也是unicode格式的。那么,系统将如何检测将要显示的语言,以便确定对齐方式。

将所有这些元素替换为您自己创建的精简自定义类,您可以根据区域设置连接以更改此属性。

您可以使用它来设置整个应用程序中ui元素的属性。这将适用于采用
UIAppearance
协议的所有类(
UILabel
UIButton
等)

对于eaxmple,以下代码将更改应用程序中所有标签的文本对齐方式:

[[UILabel appearance] setTextAlignment:NSTextAlignmentRight];

IIRC,
UINavigationBar
不支持
UIAppearance
,这意味着您需要为标题使用自定义标签。

这再次归结为手动处理每个元素。我想知道苹果是否提供了任何标准的方法来实现这一点。你打算本地化应用程序吗?您不能使用
NSTextAlignmentNatural
?@Willeke有一些限制,因此NSTectAlignmentNatural无法解决我的问题。实际上,语言的翻译是通过API实现的,而且也是unicode格式的。那么,系统将如何检测将要显示的语言,以便确定对齐方式。将此信息添加到问题中。@Willeke补充道。。谢谢