MFmailComposer 言語をプログラムで変更しようとしています。最初に「English mail」ボタンを選択すると、 最初に MFMailComposer が英語で開きます。「アラビア語メール」ボタンを選択すると、MFMailComposer はアラビア語ではなく英語で開きます。
これが私のViewControllerのスクリーンショットです
では、アプリケーションを再起動せずにプログラムで MFMailComposer 言語を変更するにはどうすればよいでしょうか?
ここにコードがあります
- (IBAction)showInArabic:(id)sender
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"ar", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self viewDidUnload];
[self viewDidLoad];
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self displayComposerSheet];
} else {
[self launchMailAppOnDevice];
}
} else {
[self launchMailAppOnDevice];
}
}
- (IBAction)showInEnglish:(id)sender
{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSArray *languages = [NSArray arrayWithObject:@"en"];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[self viewDidUnload];
[self viewDidLoad];
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil) {
if ([mailClass canSendMail]) {
[self displayComposerSheet];
} else {
[self launchMailAppOnDevice];
}
} else {
[self launchMailAppOnDevice];
}
}