gpt4 book ai didi

macos - 如何让 OSX 上的 WebView(或 WKWebView)在 Mojave 中采用深色模式

转载 作者:行者123 更新时间:2023-12-03 16:11:47 25 4
gpt4 key购买 nike

我的 Mac 应用程序中有一个嵌入式 WebView。我用它来显示 HTML 文本(从 Markdown 生成)。

我试图让它在 Mojave 中采用深色模式(类似于 NSTextView “开箱即用”的方式。)

这可能吗 - 还是我需要手动将一些 CSS 内容插入 HTML 中以专门设置颜色?

假设是后者 - 有谁知道如何以通用方式执行此操作(即让 CSS 根据客户端浏览器检测它是否需要深色或浅色。)

提前致谢...

最佳答案

当您切换到深色模式时,所有标准 View 都会切换到深色模式,您无需执行任何操作。

这就是说,WKWebView正在显示“内容”,并且“内容”不应该被系统更改,“内容”应该以自己的颜色显示自己。如果您显示一个网站,系统没有理由改变颜色。

但是,如果您有一个用例,需要将 View 内容颜色更新为系统模式,那么我想您最好的选择是检测对暗/亮模式的更改并重新加载 CSS 样式。

可以通过重写 View viewDidChangeEffectiveAppearance 方法来检测更改。

- (void)    viewDidChangeEffectiveAppearance
{
[super viewDidChangeEffectiveAppearance] ;
NSLog(@"New appearance is %@",[self effectiveAppearance].name) ;
}

根据外观名称(NSAppearanceNameVibrantDarkNSAppearanceNameVibrantLight),您可以加载 CSS 或其他 CSS。

关于macos - 如何让 OSX 上的 WebView(或 WKWebView)在 Mojave 中采用深色模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061481/

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