Skip to content

SnapClick v1.2.0 - 侧边栏焕新,Office 文件不再损坏

Choose a tag to compare

@Tyeerth Tyeerth released this 09 Jul 15:27
· 13 commits to main since this release

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 迁移到 SwiftUI Window scene + 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 编码器和 minimalOfficeData XML 拼装
  • createNewFile 改为 Bundle.main.url(forResource:withExtension:) + FileManager.copyItemFileOperations.swift 从 537 行瘦身到 310 行

后续若想扩展支持 .pages / .key / .numbers,只需把模板文件放进 Resources/ 并加到 Xcode project,代码逻辑零改动。

📦 工程

  • MARKETING_VERSION / CFBundleShortVersionString 1.1.2 → 1.2.0
  • SnapClick.xcodeproj/project.pbxproj 新增 Resources group 引用 3 个模板
  • FileOperations.swift 移除 ZipWriter 私有类、minimalOfficeData 方法及 Data 扩展

📥 安装

下载下方的 SnapClick-v1.2.0.dmg,双击打开后将 SnapClick 拖入「应用程序」文件夹即可。

首次打开如提示「无法验证开发者」,请在「系统设置 → 隐私与安全性」中点击「仍要打开」。

🔐 权限(首次运行按引导授予)

  • 屏幕录制(区域截图 / 取色)
  • 辅助功能(全局快捷键)
  • Finder 扩展(右键菜单)