我正在尝试让WKWebView在内容发生变化时自动向下滚动。我将此函数添加到我的WKNavigationDelegate
,它是NSViewController
的子类:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("Finished loading web view.")
webView.scrollToEndOfDocument(self)
}
它崩溃了:
-[WKWebView scrollToEndOfDocument:]: unrecognized selector sent to instance 0x6080001a07e0
我猜self
不是我应该传递给scrollToEndOfDocument
的。我也尝试传递webView
或nil
,但结果相同。 我应该通过什么价值?
N.B。我试过了self
,因为Apple’s docs说:
声明
func scrollToEndOfDocument(_ sender:Any?)
参数
发送方
通常是调用此方法的对象。
答案 0 :(得分:1)
您可能必须通过JavaScript:
let script = "window.scrollTo(0, document.body.scrollHeight)"
webView.evaluateJavaScript(script)
这适用于老式的WebView;离开后代:
尝试在WebView的主框架文档视图上调用scrollToEndOfDocument:
webView.mainFrame.frameView.documentView.scrollToEndOfDocument(nil)
(作为发件人传递的内容无关紧要,与您所看到的错误无关。)