我的Mac应用程序中有一个嵌入式WebView。我用它来显示HTML文本(从Markdown生成)。
我正在尝试使其在Mojave中采用暗模式(类似于NSTextView的“开箱即用”方式。)
这是可能的吗?还是我需要在HTML中手动插入一些CSS内容以专门设置颜色?
假设是后者-是否有人知道如何以通用方式进行此操作(即,基于客户端浏览器获取CSS来检测其是否需要暗或亮)。
预先感谢...
答案 0 :(得分:1)
当您切换为暗模式时,所有标准视图都将切换为暗模式,而您无需执行任何操作。
这表示WKWebView显示“内容”,并且系统不应更改“内容”,“内容”应以自己的颜色显示。如果您显示一个网站,则系统没有理由更改颜色。
但是,如果您有一个用例,可以将视图内容颜色更新为系统模式,那么我猜您最好的选择是检测对暗/亮模式的更改并重新加载CSS样式。
可以通过覆盖您的viewDidChangeEffectiveAppearance方法来检测更改。
- (void) viewDidChangeEffectiveAppearance
{
[super viewDidChangeEffectiveAppearance] ;
NSLog(@"New appearance is %@",[self effectiveAppearance].name) ;
}
根据外观名称(NSAppearanceNameVibrantDark
或NSAppearanceNameVibrantLight
),您可以加载CSS或其他CSS。