Xamarin.forms 如何使用Xamarin表单更改iOS设备的区域设置?
有人知道如何在不使用设置应用程序的情况下使用Xamarin表单更改iOS设备的区域设置吗 如果你反对投票,请添加评论。多谢各位 更新 我想要的是控制RTL的NavigationPage按钮 本文档说明NavigationPage按钮位置的限制由设备区域设置控制: 更新Xamarin.forms 如何使用Xamarin表单更改iOS设备的区域设置?,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,有人知道如何在不使用设置应用程序的情况下使用Xamarin表单更改iOS设备的区域设置吗 如果你反对投票,请添加评论。多谢各位 更新 我想要的是控制RTL的NavigationPage按钮 本文档说明NavigationPage按钮位置的限制由设备区域设置控制: 更新 我的目标是控制NavigationPage,Xamarin的文档指出要更改设备的区域设置,我从中得到了这个想法。如果只是应用程序级的,应该更好。对于Xamarin表单,我建议创建一个依赖项服务。制作如下界面: public in
我的目标是控制NavigationPage,Xamarin的文档指出要更改设备的区域设置,我从中得到了这个想法。如果只是应用程序级的,应该更好。对于Xamarin表单,我建议创建一个依赖项服务。制作如下界面:
public interface ILanguageSwitcher
{
void ChangeAppLocale(string locale);
}
为iOS创建接口的实现:
[assembly: Dependency(typeof(LanguageSwitcher))]
namespace MyApp.iOS
{
class LanguageSwitcher : ILanguageSwitcher
{
public void ChangeAppLocale(string locale)
{
var iOSLocale = locale.Replace('-', '_');
NSUserDefaults.StandardUserDefaults.SetValueForKey(NSArray.FromStrings(iOSLocale), new NSString("AppleLanguages"));
NSUserDefaults.StandardUserDefaults.Synchronize();
}
}
}
注意:在iOS中,区域设置为en_US for US English,而不是en US
从Xamarin表单代码中调用此依赖项:
ILanguageSwitcher _languageSwitcher = DependencyService.Get<ILanguageSwitcher>();
private void LanguagePicker_SelectedIndexChanged(object sender, System.EventArgs e)
{
var newItem = LanguagePicker.SelectedItem as CultureInfo;
if (_languageSwitcher != null)
{
_languageSwitcher.ChangeAppLocale(newItem.Name);
}
}
要使从右向左的更改生效,例如希伯来语或阿拉伯语,反之亦然,应用程序需要重新启动。您是否检查了此选项?是的,我检查了该页面。这是对NavigationPage按钮位置的限制,该按钮表示它由设备区域设置控制。这就是我想要改变的,设备的区域设置。