macOS WKWebView 背景透明度

Posted

技术标签:

【中文标题】macOS WKWebView 背景透明度【英文标题】:macOS WKWebView background transparency 【发布时间】:2016-10-12 20:27:14 【问题描述】:

如果有人对WKWebView有经验,请分享如何使视图的背景透明。 WebView 对象通过 var drawsBackground: Bool get set 具有这样的选项,但 WKWebView 类缺少它。我在网上搜索并..一无所获。在时间之前,可以通过opaque 属性这样做,但现在不行了。有一个吸气剂isOpaque ...就是这样。我不想通过 CSS 做到这一点,并且已经尝试过其他所有方法,例如:

webview.wantsLayer = true

webview.layer?.backgroundColor = NSColor.clear.cgColor

如果有人可以帮忙...

我。尼科洛夫

【问题讨论】:

Transparent background WKWebView (NSView)的可能重复 不是重复的。我已经尝试了那里写的所有东西-它不再起作用了。我已经在问题中描述了这一点。 请不要在您的问题中包含答案。如果答案解决了您的问题,请将答案标记为已接受;如果您认为它对其他用户有帮助,您也可以发布自己的答案。谢谢。 【参考方案1】:

这应该适用于 macOS 10.11 和 macOS 10.12:

if NSAppKitVersion.current.rawValue > 1500 
    webView.setValue(false, forKey: "drawsBackground")

else 
    webView.setValue(true, forKey: "drawsTransparentBackground")

备注:已通过 App Store 审核。

【讨论】:

让我试试看。能通过审核吗?有这方面的经验吗? 好的。这是工作。我不确定这是否会通过审核,但我会试一试,并将您的答案标记为正确。谢谢你的帮助;-) 我已经提交了一份反馈助理报告:github.com/feedback-assistant/reports/issues/81如果你也想看到这个得到官方支持,请复制这个报告。 从 ~ios14 开始,drawsTransparentBackground 已被弃用,不应再使用(尽管没有真正的替代品)【参考方案2】:

您的网页也应该有透明背景。

【讨论】:

如果我调用webview.setValue(true, forKey: "drawsTransparentBackground"),它会变得透明,但在控制台中有一条消息:[WKWebView _setDrawsTransparentBackground:] is deprecated and should not be used.。问题不在于网页不透明。 @IvayloNikolov:这是 macOS 10.11 中的正确方法。作为您问题的一部分,macOS 10.12 中的弃用应该是真正的问题。 是的 - 完全正确。你是对的。还是找不到答案。

以上是关于macOS WKWebView 背景透明度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 macOS 上渲染半透明的 MTKView?

如何设置MacOS的菜单栏和dock栏的透明度,如何设置为不透明

Vue设置背景色透明度字体不透明

怎么通过代码把图片的黑色背景变成透明的?

如何使DIV背景透明内容不透明

gis如何导出透明背景的图?