1
我创建了一个语言选择屏幕,用户可以在其中选择应用程序的首选语言(iPad)。在NSUserDefaults上更改语言后更新UI
我犯了语言的变化是这样的:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"fr"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
它完美,但它需要的应用程序重新启动的UI采取新的语言设置。根据苹果的文档:
要检测什么时候改变偏好值出现,应用程序也可以 注册通知NSUserDefaultsDidChangeNotification。只要它检测到位于 持久域之一中的首选项的更改,共享NSUserDefaults对象就会将此通知发送到您的应用程序 。您可以使用此通知来响应可能影响您用户界面的 更改。例如,您可以使用 来检测用户首选语言的更改,并适当地更新您的应用内容 。
所以它看起来像我需要注册通知NSUserDefaultsDidChangeNotification并更新我的用户界面。哪个班级听取通知?任何想法代码的样子?我的应用程序基于SKScenes和Sprite Kit对象,而不是xib和UIViewControllers。
请您解释一下您的答案。虽然他们被允许只提供代码但不解释自己的答案不是很好的答案。顺便说一下,我对那些问过的人更了解,因为如果他们明白他们不会问。 – Popeye
我添加了一些描述,我并不认为这是必要的,但我解释了一下 –
如果他们明白他们在做什么,那么他们就不会问这个问题。所以只是提供代码并没有告诉他们任何东西,也没有帮助他们学习。让我们这样说,如果你问了一些关于某些代码不工作的问题,而你不明白这一点,我只是给了你一些代码,并没有解释它会从中学到什么,即使你还没有理解代码? – Popeye