【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

相关推荐
奶油话梅糖2 小时前
深入解析交换机端口安全:Sticky MAC的工作原理与应用实践
网络·安全·macos
1024小神5 小时前
macos使用brew报错解决办法
macos
爱转呼啦圈的小兔子6 小时前
Mac中修改Word的Normal.dotm文件
macos·word
wanghao6664557 小时前
Mac测试端口连接的几种方式
macos
Digitally20 小时前
如何将视频从安卓设备传输到Mac?
android·macos
心灵宝贝1 天前
Mac用户安装JDK 22完整流程(Intel版dmg文件安装指南附安装包下载)
java·开发语言·macos
Magnetic_h1 天前
【iOS】内存管理及部分Runtime复习
笔记·学习·macos·ios·objective-c·cocoa·xcode
2501_927539303 天前
EndNote 2025 Mac 文献管理工具
macos·mac·文献管理
coderklaus3 天前
Shell 基础知识
linux·macos·shell
ACGkaka_3 天前
Mac(十)设置右键文件夹使用 idea、vscode 打开
vscode·macos·intellij-idea