SnapClick v1.2.0 - 侧边栏焕新,Office 文件不再损坏
SnapClick v1.2.0
侧边栏焕新,Office 文件不再损坏。
✨ 视觉焕新
- 侧边栏与主窗口全面采用 Apple Liquid Glass 风格:半透明毛玻璃材质(20–30% 背景透明度 + 40–60px 背景模糊)、1px 白色高光描边、28–32px 大圆角,呼应 macOS Tahoe / Apple Music / WWDC 2025 设计语言
- macOS 红黄绿窗口控制按钮嵌入侧边栏顶部,与 Logo / 导航项保持统一的呼吸间距
- 导航项改为悬浮胶囊设计:默认透明,hover 时浮现玻璃高光,选中项用发光 Liquid Glass 胶囊取代旧版蓝灰矩形
- 导航图标统一为 SF Symbols 单色风格,整体留白更克制
- 欢迎页与主窗口视觉保持一致,统一 Liquid Glass 背景
🛠 窗口架构重构
- 主窗口从自定义
NSWindow+HStack迁移到 SwiftUIWindowscene +NavigationSplitView,由系统管理原生交通灯按钮并自动给侧边栏让出安全区 - 新增
AppNavigation单例:桥接状态栏菜单、Dock 点击、IPC 回调等非 SwiftUI 入口到 SwiftUI Window 场景,监听mainRequestID/welcomeRequestID触发openWindow - 状态栏、Dock 点击、欢迎页跳转路径全部走新的
AppNavigation链路,旧的NSApp.sendAction关闭方式仅作兼容回退
🐛 修复:右键新建 Office 文件损坏
之前 在 Finder 右键新建「Excel 表格 / Word 文档 / PPT 演示」后,双击文件 Excel/Word/PowerPoint 会弹「文件格式或文件扩展名无效」。
根因:Shared/FileOperations.swift 中手写的 ZipWriter 中央目录头缺少 2 字节 mod date 字段(ZIP 规范要求),整个中央目录错位 2 字节,Office 解析失败。同时模板 XML 中 [Content_Types].xml 和 _rels/.rels 对三种格式都硬编码 word/document.xml,xlsx 缺少必需的 xl/worksheets/sheet1.xml 等子部件。
修复方案:参考 wflixu/RClick 的做法——
- 新增
SnapClick/Resources/template.{docx,xlsx,pptx}三个真实 Office 模板文件(用textutil/openpyxl/python-pptx生成,含主题、样式、app metadata 等完整元数据) - 删除 220 行手写
ZipWriter编码器和minimalOfficeDataXML 拼装 createNewFile改为Bundle.main.url(forResource:withExtension:) + FileManager.copyItem,FileOperations.swift从 537 行瘦身到 310 行
后续若想扩展支持 .pages / .key / .numbers,只需把模板文件放进 Resources/ 并加到 Xcode project,代码逻辑零改动。
📦 工程
MARKETING_VERSION/CFBundleShortVersionString1.1.2 → 1.2.0SnapClick.xcodeproj/project.pbxproj新增 Resources group 引用 3 个模板FileOperations.swift移除ZipWriter私有类、minimalOfficeData方法及Data扩展
📥 安装
下载下方的 SnapClick-v1.2.0.dmg,双击打开后将 SnapClick 拖入「应用程序」文件夹即可。
首次打开如提示「无法验证开发者」,请在「系统设置 → 隐私与安全性」中点击「仍要打开」。
🔐 权限(首次运行按引导授予)
- 屏幕录制(区域截图 / 取色)
- 辅助功能(全局快捷键)
- Finder 扩展(右键菜单)