2015-02-23 49 views
0

我已经找到了很多方法,但没有工作的解决方案。这是我尝试过的并且没有工作。获取当前活动的键盘语言作为NSLocale

(1)简单的调用primaryLanguage()

UITextInputMode().primaryLanguage 

→总是返回nil: -/

(2)订阅UITextInputCurrentInputModeDidChangeNotification通知

override func viewDidLoad() { 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeInputMode:", name: UITextInputCurrentInputModeDidChangeNotification, object: nil) 
} 

func changeInputMode(sender : NSNotification) { 
    ...?! 
} 

通知正在触发,但尚不清楚我如何从通知中提取当前语言信息。

(3)使用activeInputModes()

​​

这总是提供所有可用的键盘相同的数组,就实际有源一个没有信息。

如何获取当前活动键盘的NSLocale?

回答

4

您可以通过访问该文本框textInputMode这样的,从每一个文本框访问primaryLanguage:

var language = textfield.textInputMode?.primaryLanguage 
+0

大,工程。唯一的缺点是它只会在textview或textfield变为活动状态时返回一个值 - 否则它是零。在viewDidLoad之后,甚至在显示之前,也可以获得主动键盘语言。 – Bernd 2015-02-23 23:25:15