Swift 我应该传递什么到scrollToEndOfDocument(:)呢?
我正在尝试使WKWebView在内容更改时自动向下滚动。我将此函数添加到我的Swift 我应该传递什么到scrollToEndOfDocument(:)呢?,swift,cocoa,webkit,Swift,Cocoa,Webkit,我正在尝试使WKWebView在内容更改时自动向下滚动。我将此函数添加到我的WKNavigationDelegate,它是NSViewController的子类: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { print("Finished loading web view.") webView.scrollToEndOfDocument(self) } 它崩溃了: -[WKW
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
,结果相同我应该传递什么值?
注意:我试着自己,因为我说: 声明 func scrollToEndOfDocument(uu发件人:有吗?) 参数 寄件人 通常是调用此方法的对象
您可能必须通过JavaScript执行此操作:
let script = "window.scrollTo(0, document.body.scrollHeight)"
webView.evaluateJavaScript(script)
这是老派的网络视图;留给后代: 尝试在WebView主框架的文档视图上调用scrollToEndOfDocument::
webView.mainFrame.frameView.documentView.scrollToEndOfDocument(无)
(您作为发送方传递的内容应该无关紧要,并且与您看到的错误无关。)我尝试过这样做,但WKWebView中似乎没有大型机的
属性。有一个frame
属性,但是这个属性没有frameView
属性……哦,哎呀;WKWebView,而不是WebView。IIRC您必须使用JavaScript滚动WKWebView。实际上,WKWebView有一个scrollView
属性…editing.Argh,这只是iOS。您可能必须使用JavaScript。有一个封闭的CrollView
,但在我的例子中它是nil
(我现在删除了我的答案,因为它是针对WebView
而不是WKWebView
)(用JavaScript内容取消删除)