2015-12-17 2 views
0

Я знаю, как обнаружить обычную клавиатуру, отображаемую в Swift, но мне интересно, можно ли обнаружить события внутри WKWebView, потому что ... если приложение попадает в фоновый режим, входы потерять фокус, но событие «размытие» не запускается.Обнаружение событий изнутри экземпляра WKWebView

Идея состоит в том, что у меня есть «панель навигации» в приложении, которая выталкивается из вида (вверх), когда отображается клавиатура, и я хотел бы продолжать показывать ее. Знание клавиатуры - это примерно 216px tall Я бы просто хотел сузить высоту content wrapper, которая flex based от 216px, но это не работает, так как это анимация, которую я не могу воспроизвести, поэтому она гладкая. Я также не могу обнаружить, когда пользователь перешел на вкладку emoji. Я избавился от autocorrect, так как я просто установил его для off для тега input.

ответ

0

Попробуйте этот код.

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 
} 
Смежные вопросы