发布时间:2026/8/24 2:59:45
ThemeKit 完全指南:为 macOS 应用添加深色模式与自定义主题 ThemeKit 完全指南为 macOS 应用添加深色模式与自定义主题【免费下载链接】ThemeKitmacOS theming library项目地址: https://gitcode.com/gh_mirrors/the/ThemeKitThemeKit 是一款用 Swift 编写的轻量 macOS 主题切换库。一行代码就能让应用支持浅色、深色主题切换还可以让用户用文本文件创建自己的主题。它同时支持 Swift 与 Objective-C 项目兼容 macOS 10.10 及以上版本。你大概率会遇到的三种情况应用做好之后用户说晚上开着黑底白字太刺眼你才想起没有深色模式。或者你想给产品做一个专属配色却发现系统的外观设置只有浅色/深色两档中间没有你的品牌色。再或者有用户希望你开放自定义主题而你不想为此自建一整套换肤机制。这三种情况ThemeKit 都直接给了现成答案。一句话定位与能力速览ThemeKit 做的事只有一件让 macOS 应用的界面资源颜色、渐变、图片、窗口外观跟随当前主题自动变化并把主题的选择权交给应用或用户。能力你能得到什么一行代码换肤应用级切换浅色、深色或跟随系统外观窗口策略控制指定哪些窗口参与主题化全部、指定类、或排除面板主题感知资源颜色、渐变、图片随主题自动变化无需手动刷新系统颜色覆盖替换NSColor.labelColor等命名色让系统控件也跟随主题用户自定义主题用户写一个.theme文本文件即可创建新主题无需重新编译从克隆到换肤的最短路径先把仓库拿到本地浏览示例项目git clone https://gitcode.com/gh_mirrors/the/ThemeKit把 Sources/ 下的源文件加入你的工程或使用 CocoaPods / Carthage 引入然后在AppDelegate的启动回调里应用主题func applicationWillFinishLaunching(_ notification: Notification) { ThemeManager.systemTheme.apply() }systemTheme会跟随系统设置 → 通用 → 外观自动在浅色和深色之间切换。如果你只想固定深色把这一行换成ThemeManager.darkTheme.apply()即可。跑起来之后应用的所有窗口都会按当前主题渲染。核心能力拆解浅色、深色、系统三种内置主题库里预置了LightTheme、DarkTheme和SystemTheme。前两者是固定的浅色与深色外观SystemTheme是一个代理它会实时解析系统外观设置对应到前两者之一。适合谁只想补上深色模式、不想维护多余主题的应用。随主题自动切换的颜色、渐变与图片ThemeColor、ThemeGradient、ThemeImage是三类知道当前主题的资源。你在项目里声明一次资源名运行时它会自动解析成当前主题对应的值。比如给品牌色定义一个扩展extension ThemeColor { objc static var brandColor: ThemeColor { ThemeColor.color(with: #function) } }之后在界面里任何地方使用ThemeColor.brandColor切换主题时颜色自动跟着变不需要自己监听刷新。适合谁有品牌色体系、颜色散落在多个视图里的项目。它还内置了回退机制——主题里没定义某个资源时会依次回退到主题级回退值或库内置默认值不会直接拿不到颜色。让用户写个文本文件就拥有新主题除了代码里定义的Theme协议主题ThemeKit 还支持UserTheme一个.theme纯文本文件。文件里只需几行信息——显示名、唯一标识、是否深色主题再配上若干颜色键值对。例如 Demo 里的 Purple Green 主题标题栏、正文背景、标题文字各占一行想要纸张纹理背景就写一行contentBackgroundColor pattern(named:paper)引用一张纹理图。你只需告诉 ThemeKit 存放这些文件的文件夹userThemesFolderURL主题就会出现在应用的主题列表里。用户主题甚至能用纹理图片做背景做出纸面书写这类效果。适合谁希望把界面个性化交给最终用户的应用。决定哪些窗口参与主题化windowThemePolicy提供四种策略主题化所有窗口、只主题化指定窗口类、不主题化某些窗口类例如NSPanel、或完全不自动主题化。多窗口应用通常用排除面板这种粒度最顺手——主窗口跟主题走浮动工具窗保持系统外观。策略没覆盖到的窗口也可以调用NSWindow扩展里的方法手动主题化。视图如何跟上主题变化切换主题时库会发送willChangeTheme和didChangeTheme通知同时ThemeManager.shared.effectiveTheme等属性支持 KVO。如果你的视图缓存了绘制内容或者用了窗口级独立主题就在通知回调里重绘一次。示例工程 Demo/Demo/ 的主题菜单就是靠监听这个通知来更新勾选状态的。适合谁谁要慎重场景判断macOS 应用需要补深色模式适合接入成本接近一行代码想给用户开放自定义主题适合文本文件方案无需重新编译Swift 与 Objective-C 混编项目适合两种语言都有完整接口iOS 应用换肤不适合这是 macOS 专用库精细控制每个控件的文字/填充颜色有限制原生控件只能部分覆盖系统命名色上手前要知道的三件事控件配色有边界。原生按钮、弹出框等控件的填充色不能任意指定能自由定制的是系统命名色如NSColor.labelColor覆盖它能解决大部分文字着色场景。可用NSColor.colorMethodNames()列出全部可覆盖的颜色。两个已知的视觉细节。老版本 macOS 若开启始终显示滚动条深色主题下滚动条可能发白需要在主题变化时手动设置其背景层自定义绘制文字时务必先铺背景色否则可能遇到字体平滑问题。部署基线。支持 macOS 10.10 以上Swift 5.4 编译Objective-C 工程手动引入时需要一并包含 Swift 相关框架。延伸资料README.md完整功能列表、安装方式与 FAQSources/主题管理器、主题协议与主题感知资源的实现Docs/仓库内置的 API 文档Demo/Demo/可运行的示例应用含主题菜单与标题栏主题化Demo/Themes/现成的.theme用户主题文件macOSThemeKit.podspec版本与依赖声明主题能力做深了容易变成自研框架ThemeKit 的价值在于把这件事压缩到一个可以直接放进工程的轻量库里。看完 Demo 之后再决定接入深度是个稳妥的顺序。【免费下载链接】ThemeKitmacOS theming library项目地址: https://gitcode.com/gh_mirrors/the/ThemeKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/24 2:54:45

printpdf:轻量级 Rust PDF 库,三分钟跑通 PDF 读写与渲染

printpdf:轻量级 Rust PDF 库,三分钟跑通 PDF 读写与渲染 【免费下载链接】printpdf Rust / WASM library for reading, writing and rendering PDF 项目地址: https://gitcode.com/gh_mirrors/pr/printpdf printpdf 是一款轻量的 Rust PDF 库&am…

2026/8/24 3:59:49

帕金森病神经活动数据集:时频神经信号和标签

摘要:帕金森病神经活动数据集是一个面向帕金森病神经信号分析与机器学习研究的脑电图(EEG)数据集,主要通过合成方式模拟不同帕金森病状态下的神经活动。数据集概述帕金森病神经活动数据集是一个面向帕金森病神经信号分析与机器学习…

2026/8/24 3:59:49

DeepSeek-Harness视觉理解插件本地化部署实战指南

在AI应用开发领域,视觉理解能力正成为连接大语言模型与现实世界的关键桥梁。然而,许多开发者面临一个困境:如何将强大的视觉模型与灵活的对话AI结合,并实现本地化部署以保障数据隐私和降低延迟?网上资料往往只涉及云端…

2026/8/24 3:59:49

LizzieYzy 围棋AI分析:如何快速复盘一局棋

LizzieYzy 围棋AI分析:如何快速复盘一局棋 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy LizzieYzy 是一款开源的围棋引擎图形界面,可加载 KataGo、LeelaZero 等引擎来分析和复盘棋谱。它提供鹰眼…

2026/8/24 3:59:49

从智能体到AI团队:Coze平台实战指南与避坑总结

这类工具最值得先看的不是功能列表,而是能不能在普通环境里稳定跑起来,以及它到底解决了传统开发流程里的哪些具体痛点。Coze这类智能体平台,核心价值在于把大模型的能力封装成可交互、可编排的“智能体”,并且能通过多智能体协作…

2026/8/24 3:54:48

基于视觉模型的网页自动化AI Agent:从原理到工程实践

1. 引言:从API的局限到视觉模型的突破在AI Agent的开发浪潮中,一个普遍的误区是认为只要通过API就能让Agent“接管”一切。许多开发者尝试通过调用各种网页的API接口,期望实现自动化操作,但很快就会发现这条路困难重重&#xff1a…

2026/8/24 0:07:22

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/23 0:02:04

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 1:09:25

3条命令跑通LocalAI:无GPU本地AI引擎部署

3条命令跑通LocalAI:无GPU本地AI引擎部署 【免费下载链接】LocalAI LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required. 项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI…

2026/8/24 1:09:25

AI推理性能测试怎么做:MLPerf Inference完整上手指南

AI推理性能测试怎么做:MLPerf Inference完整上手指南 【免费下载链接】inference Reference implementations of MLPerf inference benchmarks 项目地址: https://gitcode.com/gh_mirrors/inf/inference 同一个模型换一张卡,速度快多少你知道吗&a…

2026/8/23 13:29:45

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/23 6:14:43

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/23 4:22:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…