Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSLocalizedString与应用程序中的切换语言_Ios_Objective C_Localization - Fatal编程技术网

Ios NSLocalizedString与应用程序中的切换语言

Ios NSLocalizedString与应用程序中的切换语言,ios,objective-c,localization,Ios,Objective C,Localization,我需要使用本地化切换语言时,按钮点击 我已经试过了,bug元素不会刷新 -它们的设置如下: self.lblSectionMyPictures.text=NSLocalizedString(@"lblSectionMyPictures", nil); 要切换的代码: - (void)SwitchToFrench{ [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"fr", nil]

我需要使用本地化切换语言时,按钮点击

我已经试过了,bug元素不会刷新

-它们的设置如下:

self.lblSectionMyPictures.text=NSLocalizedString(@"lblSectionMyPictures", nil);
要切换的代码:

- (void)SwitchToFrench{
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"fr", nil]
                                              forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    [self.view setNeedsDisplay];
 }

- (void)SwitchToEnglish{
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil]
                                              forKey:@"AppleLanguages"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    [self.view setNeedsDisplay];
 }

有什么想法\最佳实践吗?

苹果的本地化解决方案不支持动态切换本地化。字符串只加载一次,然后再也不会更改

如果您坚持追求动态切换语言(这在我的经验中是不可能实现的理想),我认为您最好的选择是创建自己的符合KVO的本地化字符串提供程序,并将每个GUI元素(按钮标题、文本字段值等)绑定到它。启用自动布局后,这甚至可能会起作用