Большинство элементов пользовательского интерфейса в swift имеют UIResponder. Необработанные события передаются по цепочке респондента во вложенные представления. Я предполагаю, что WKWebView поглощает все сенсорные события, как только окно стало активным. Вы можете узнать больше о цепочке респондента здесь
Относительно первого респондента. Из документов:
Первый респондент обычно является первым объектом в цепочке респондента, получившим сообщение о событии или действии. В большинстве случаев первым респондентом является объект просмотра, который пользователь выбирает или активирует с помощью мыши или клавиатуры.
Если вы хотите сохранить интерактивность с полнофункциональным WKWebView (например, вам нужно вызвать клавиатуру или что-то в этом роде), вы можете использовать
webView.resignFirstResponder()
В любое время подать в отставку.
В противном случае расширение, которое даст вам ту же функциональность, может выглядеть примерно так:
extension WKWebView {
open override func becomeFirstResponder() -> Bool {
if self.superview?.superview is UIWebView {
return false
} else {
return super.becomeFirstResponder()
}
}
}