gpt4 book ai didi

macos - 获取 Webview 的滚动位置和范围

转载 作者:行者123 更新时间:2023-12-03 17:21:06 26 4
gpt4 key购买 nike

我的 Mac OS X 应用程序 UI 中有一个 Webview 控件,我需要以某种方式确定控件中的内容是否可以滚动。换句话说,滚动位置是在控件的末尾吗?

通过一些实验,我发现以下方法在某些情况下有效:

-(BOOL)canScroll
{
NSScroller * scroll = self.mainFrame.frameView.documentView.enclosingScrollView.verticalScroller;
return scroll.knobProportion > 0.0 && scroll.knobProportion < 1.0 && scroll.floatValue < 1.0;
}

但是很多时候并非如此。我无法确定它应该在什么情况下工作,并且网络上的文档也很模糊。有人可以推荐一种可靠的方法来确定 Webview 是否可以滚动而不实际执行滚动并比较可见内容区域吗?

最佳答案

我尝试做类似的事情,并开始尝试滚动条是否存在。这导致了这种方法,尽管我必须警告这纯粹是根据经验定义的。

func canScroll() -> Bool {
guard let scroll = self.mainFrame.frameView.documentView.enclosingScrollView?.verticalScroller else { return false }
let knobProportion = scroll.knobProportion
let floatValue = scroll.floatValue
if scroll.usableParts == .noScrollerParts {
return floatValue < 1.0 && floatValue != 0.0
} else {
return knobProportion > 0.0 && knobProportion < 1.0 && floatValue < 1.0
}
}

到目前为止,这似乎工作可靠。

关于macos - 获取 Webview 的滚动位置和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com