【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

相关推荐
aini_lovee17 小时前
寻找 MAC 协议的 MATLAB 仿真
开发语言·macos·matlab
2501_915106321 天前
最新版本iOS系统设备管理功能全面指南
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_915918411 天前
iOS 性能监控 运行时指标与系统行为的多工具协同方案
android·macos·ios·小程序·uni-app·cocoa·iphone
TheNextByte11 天前
适用于Windows和Mac电脑的Android文件传输工具
windows·macos·电脑
Orange裴1 天前
Kali linux2025.3 安装nessus(Mac M4芯片)
linux·运维·macos·kali linux
通域1 天前
MacOS Ventura EasyConnect 安装提示 “正在等待其他安装完成“
macos
Digitally1 天前
5种将iPhone同步到Mac/MacBook的方法
macos·ios·iphone
Digitally1 天前
7种在iPhone和Mac之间传输文件的最佳方法
macos·ios·iphone
linweidong2 天前
实战救火型 从 500MB 降到 50MB:高频业务场景下的 iOS 内存急救与避坑指南
macos·ios·objective-c·cocoa·ios面试·nstimer·ios面经