MonoTouch / iOS上提供的PreferredLocalizations

时间:2012-06-07 19:58:32

标签: ios localization xamarin.ios nsbundle

查看Apple开发人员参考,我发现PreferredLocalizations可用PreferredLanguages

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html

但是,NSBundle似乎没有实现“PreferredLocalizations”。我错过了什么吗?我是using MonoTouch.Foundation

1 个答案:

答案 0 :(得分:1)

你是对的,MonoTouch目前缺少它。获得它的最好和最快的方法是填写bug report并要求它。

在许多情况下(如此),很容易提供适用于现有MonoTouch版本的解决方法。

请注意,您的链接适用于OSX,而​​不是iOS,某些类型(包括NSBundle)在两者之间存在一些差异(但在preferredLocalizations的情况下,它存在于两个操作系统中)。

<强>更新

我为MonoTouch的下一个版本(将是5.3.5版)添加了这个版本。与此同时,这是一个解决方法:

using MonoTouch.ObjCRuntime;
...
var bh = NSBundle.MainBundle.Handle;
var sel = Selector.GetHandle ("preferredLocalizations");
var pl = NSArray.StringArrayFromHandle (Messaging.IntPtr_objc_msgSend (bh, sel));
Console.WriteLine (pl [0]); // en