获取当前活动的键盘语言作为 NSLocale
Getting the currently active keyboard language as NSLocale
我已经找到了很多方法来解决这个问题,但没有有效的解决方案。这是我尝试过但没有奏效的方法。
(1) 只需调用 primaryLanguage()
UITextInputMode().primaryLanguage
→ 总是 returns 无 :-/
(2) 订阅 UITextInputCurrentInputModeDidChangeNotification 通知
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeInputMode:", name: UITextInputCurrentInputModeDidChangeNotification, object: nil)
}
func changeInputMode(sender : NSNotification) {
...?!
}
通知已被触发,但不清楚如何从通知中提取当前语言信息。
(3) 使用 activeInputModes()
let localeIdentifier = UITextInputMode.activeInputModes().first as? UITextInputMode
var locale:NSLocale = NSLocale(localeIdentifier: localeIdentifier.primaryLanguage!)
println("Input Mode Language \(localeIdentifier.primaryLanguage!)")
这始终提供所有可用键盘的相同数组,没有关于实际活动键盘的信息。
如何获取当前活动键盘的 NSLocale?
您可以通过像这样访问文本字段 textInputMode
从每个文本字段访问 primaryLanguage:
var language = textfield.textInputMode?.primaryLanguage
我已经找到了很多方法来解决这个问题,但没有有效的解决方案。这是我尝试过但没有奏效的方法。
(1) 只需调用 primaryLanguage()
UITextInputMode().primaryLanguage
→ 总是 returns 无 :-/
(2) 订阅 UITextInputCurrentInputModeDidChangeNotification 通知
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeInputMode:", name: UITextInputCurrentInputModeDidChangeNotification, object: nil)
}
func changeInputMode(sender : NSNotification) {
...?!
}
通知已被触发,但不清楚如何从通知中提取当前语言信息。
(3) 使用 activeInputModes()
let localeIdentifier = UITextInputMode.activeInputModes().first as? UITextInputMode
var locale:NSLocale = NSLocale(localeIdentifier: localeIdentifier.primaryLanguage!)
println("Input Mode Language \(localeIdentifier.primaryLanguage!)")
这始终提供所有可用键盘的相同数组,没有关于实际活动键盘的信息。
如何获取当前活动键盘的 NSLocale?
您可以通过像这样访问文本字段 textInputMode
从每个文本字段访问 primaryLanguage:
var language = textfield.textInputMode?.primaryLanguage