Sco*_*tty 5 macos cocoa webkit macos-mojave
我的Mac应用程序中有一个嵌入式WebView。我用它来显示HTML文本(从Markdown生成)。
我正在尝试使其在Mojave中采用黑暗模式(类似于NSTextView的“开箱即用”方式。)
这是否可能-还是我需要手动将一些CSS素材插入HTML以专门设置颜色?
假设是后者-是否有人知道如何以通用方式执行此操作(即,基于客户端浏览器获取CSS来检测它是否需要暗或亮)。
提前致谢...
当您切换到深色模式时,所有标准视图都会切换到深色模式,您无需执行任何操作。
这就是说,WKWebView正在显示“内容”,并且“内容”不应该被系统更改,“内容”应该以自己的颜色显示自己。如果您显示一个网站,系统没有理由改变颜色。
但如果您有一个用例,将视图内容颜色更新为系统模式是有意义的,那么我想您最好的选择是检测对暗/亮模式的更改并重新加载 CSS 样式。
可以通过重写视图 viewDidChangeEffectiveAppearance 方法来检测更改。
- (void) viewDidChangeEffectiveAppearance
{
[super viewDidChangeEffectiveAppearance] ;
NSLog(@"New appearance is %@",[self effectiveAppearance].name) ;
}
Run Code Online (Sandbox Code Playgroud)
根据外观名称(NSAppearanceNameVibrantDark或NSAppearanceNameVibrantLight),您可以加载 CSS 或其他 CSS。
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |