自定义键盘[例如SwiftKeys]多次调用观察者(iOS8)问题

时间:2015-04-17 12:42:40

标签: swift ios8 custom-keyboard

我使用Apple的默认键盘和第三方键盘在iOS8中运行以下代码:

class ViewController: UIViewController {

var checkValue: CGRect?

override func viewDidLoad() {
    super.viewDidLoad()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "updateViews:", name: UIKeyboardWillShowNotification, object: nil)
}

func updateViews(notification: NSNotification){
    if let userInfo = notification.userInfo {
        let endKeyboardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey]!).CGRectValue()
        checkValue = endKeyboardFrame
    }
    println(checkValue)
}

}

例如,这是SwiftKeys的输出:

(0.0, 667.0, 375.0, 0.0) 
(0.0, 451.0, 375.0, 216.0)
(0.0, 409.0, 375.0, 258.0)

而Apple的默认键盘:

Optional((0.0, 409.0, 375.0, 258.0))

对于Apple的默认键盘,代码会按预期调用一次[例如点击文本字段]。但是对于第三方键盘,它会被多次调用。为什么是这样?我不想禁用第三方键盘。

在我的主项目中,我正在更新视图,这导致代码多次运行。

0 个答案:

没有答案