【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

相关推荐
kk哥88991 天前
iOS 26 适配指南:UIScrollView 新特性与最佳实践
macos·ios·cocoa
壕壕1 天前
Re: 0x03. 从零开始的光线追踪实现-多球体着色
macos·计算机图形学
LZ7工作室1 天前
MAC编程:在MACOS安装和使用 Git 的方法
网络·git·macos·github·个人开发
白玉cfc1 天前
【iOS】多线程基础
macos·ios
2501_915106321 天前
游戏上架 App Store 的技术流程解析 从构建到审核的全流程指南
游戏·macos·ios·小程序·uni-app·cocoa·iphone
laocaibulao2 天前
mac电脑brew update很慢咋办?
macos
心灵宝贝2 天前
XMind for Mac v24.01.dmg 安装教程(Mac思维导图软件下载安装步骤)
macos·xmind
醇氧2 天前
Mac 安装 Docker Desktop
macos·docker·容器
神秘人-解说2 天前
在Mac上安装Windows 11/10双系统(M1/M2/Intel通用)
windows·macos·mac安装双系统·mac安装虚拟机·mac安装windows
知难行难2 天前
macOS配置Apocrita及ssh访问及获取GPU权限
运维·macos·ssh