IOS-9在希伯来语/阿拉伯语中从右向左禁用

IOS-9在希伯来语/阿拉伯语中从右向左禁用,ios,objective-c,ios9,Ios,Objective C,Ios9,请建议如何以编程方式将所有应用程序从右向左更改。 在iOS 9中,苹果将希伯来语/阿拉伯语区域设置为从左到右(镜像) 如果有任何选项可以更改,请提供建议 问候亚基尔 将界面语言更改为英语。目前这是唯一的办法(除非苹果确信这是个坏主意) 编辑: 如果您希望应用程序的行为“仅限英语”-您可以在代码中强制使用区域设置: 在AppDelegate中添加到didfishlaunchingwithoptions: - (BOOL)application:(UIApplication *)applicatio

请建议如何以编程方式将所有应用程序从右向左更改。 在iOS 9中,苹果将希伯来语/阿拉伯语区域设置为从左到右(镜像)

如果有任何选项可以更改,请提供建议


问候亚基尔

将界面语言更改为英语。目前这是唯一的办法(除非苹果确信这是个坏主意)

编辑: 如果您希望应用程序的行为“仅限英语”-您可以在代码中强制使用区域设置: 在
AppDelegate
中添加到
didfishlaunchingwithoptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
        if (![[languages firstObject] isEqualToString:@"en"]) {
            [[NSUserDefaults standardUserDefaults] setObject:@[@"en"] forKey:@"AppleLanguages"];
            [[NSUserDefaults standardUserDefaults] synchronize];
        }
}

除了Boaz的答案之外,将此代码放在main.m文件中,而不是放在
didfishLaunching
方法中,可能更好、更安全。 (没有足够的代表在原始答案中添加此评论)

而且。。。您不需要获取语言数组/检查第一语言,只需将其设置为“en”:

“[[UIView外观]setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];”此语句强制以从右到左模式呈现视图,而不考虑应用程序或设备语言。
确保在viewdiload中调用此语句。

我想直到现在我才理解您的问题,编辑了答案
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
[defaults synchronize];
if(OS_GREATER_THAN_OR_EQUALTO(@"9.0"))
{
    if(RightToLeftLanguage)
    {
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
    }
    else
    {
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
    }
}