2015-02-23 60 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