从 WKWebView 实例内部检测事件

Detect events from inside a WKWebView instance

我知道如何检测 Swift 中显示的普通键盘,但我想知道是否可以检测 WKWebView 中的事件,因为...如果应用程序进入背景,输入失去焦点,但未触发 "blur" 事件。

我的想法是,我在应用程序中有一个 "navigation bar",当显示键盘时,它会被推出视图(向上),我想继续显示它。知道键盘大约 216px 高我只想通过 216px 缩小 content wrapper 的高度 flex based 但这并没有真正起作用,因为它是一个动画我无法真正重现,所以它很流畅。我也无法检测到用户何时进入 emoji 选项卡。我摆脱了 autocorrect 因为我只是将 input 标签设置为 off

试试这个代码。

override viewWillAppear(){
  NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
  NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide"), name:UIKeyboardWillHideNotification, object: nil);
}

func keyboardWillHide(){
  navigationController?.setNavigationBarHidden(false, animated: true)
}

func keyboardWillShow(notification: NSNotification) {
  navigationController?.setNavigationBarHidden(true, animated: true)
  var info = notification.userInfo!
  var keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
  // handle your layout according to frame
}