【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法

【macOS】【Swift】【RTF】黑色文字在macOS深色外观下看不清的解决方法

遇到这个问题,

Cursor高效率地忙乎了一个小时,给出了很多方案并做了修改,但都没生效。

kimi还给出了:在深色外观下,将黑色文字转成白色;保存时,再反转的方法。

我都感觉:不是我当前App所需要的效果。

==========

最后,找到很简单的方法,一行代码即可。

当macOS的外观设置为深色时,

RTF文件读取后,如果文字也是黑色,则无法看清楚。

简单的解决方法是:

复制代码
/// AppKit封装,SwiftUI中显示NSAttributedString
struct RTFTextView: NSViewRepresentable {
    let attributedString: NSAttributedString
    func makeNSView(context: Context) -> NSTextView {
        let textView = NSTextView()
        textView.isEditable = false
        textView.textStorage?.setAttributedString(attributedString)
        
        //设置RTF文字的背景:透明
        //textView.backgroundColor = NSColor.clear
        
        //设置RTF文字的背景:浅灰色
        textView.backgroundColor = NSColor.lightGray
        
        //设置RTF文字的背景:保持浅色背景(不用macOS的外观,防止黑色外观时,黑色文字看不清)
        //textView.appearance = NSAppearance(named: .aqua)
        
        return textView
    }
    func updateNSView(_ nsView: NSTextView, context: Context) {
        nsView.textStorage?.setAttributedString(attributedString)
    }
}

shense

相关推荐
Hello_Pyhx1 小时前
CrossPaste 跨系统剪贴板配置:按发现、配对、同步逐层排查
macos·电脑
king135987455018 小时前
LFM2.5-24B-A2B Mac 本地部署:内存估算、GGUF/MLX 与 Python 预检脚本
人工智能·macos
骑着蜗牛撵大象32719 小时前
链路层不只是 MAC:以太网帧、ARP 与 802.1Q VLAN 的逐跳拆解
计算机网络·macos·ar·vlan·mac地址·链路层
一条泥憨鱼20 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
老牛日常随笔2 天前
Meta 开源 8160 亿参数模型,官方给的方案是两台 Mac Studio
macos·开源
桌管小李3 天前
内网终端安全再升级|迪康端点安全 2609 版本四大新功能解读
大数据·windows·安全·macos·网络安全
情 九3 天前
Dify 本地环境搭建教程:macOS / Windows
windows·macos
2501_915918414 天前
在 Xcode 中运行和调试单元测试的完整指南
ide·vscode·macos·ios·单元测试·个人开发·xcode
Lalolander4 天前
灵基Lingee怎么下载安装?Mac 与 Win 详细指南
大数据·人工智能·科技·macos·金蝶灵基
老李IT笔记4 天前
远程取设备日志:iOS、tvOS 和 macOS 三端的同意方式不一样
macos·ios