Skip to content

Commit 6703026

Browse files
davidhooclaude
andcommitted
release(v2.2.2): 冷启动窗口前置 / FindBar 反向查找 / 标准菜单本地化
记录 v2.2.2 发布元数据,收录自 v2.2.1 以来 3 个非合并提交的修复: - 冷启动双击 Markdown 窗口不前置(d89b67f) WindowCoordinator 复用窗口时同步 activate;@entry 改手写 FocusedValueKey 兼容 Command Line Tools 工具链 - 查找栏 Shift+Enter 反向查找(38e91b6) .onSubmit → .onKeyPress(.return),Enter 下一个 / Shift+Enter 上一个 - 标准一级菜单不跟随应用语言设置(4e9caab) Bundle 开发语言改 en + CFBundleLocalizations 声明;新增 MainMenuLocalizationService 在 AppDelegate 启动与语言偏好变化时 同步标准菜单标题,自定义 CommandMenu 仍走 L10n - CHANGELOG:新增 [2.2.2] - 2026-07-31 条目 - CLAUDE.md / AGENTS.md:当前版本 2.2.1 → 2.2.2 - docs/releases/release-notes-v2.2.2.md:新建 release notes 验证:swift build 通过,swift test 全部 135 个测试通过。 Co-Authored-By: Claude Opus 5.2 <noreply@anthropic.com>
1 parent 7ee7dc2 commit 6703026

4 files changed

Lines changed: 54 additions & 2 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
MarkdownReader 是一个原生 macOS Markdown 阅读器应用。不是编辑器,只是一个安静的阅读器。三栏布局:左侧目录树 + 中间渲染视图 + 右侧大纲导航。
88

9-
- **当前版本**: 2.2.1
9+
- **当前版本**: 2.2.2
1010
- **最低部署**: macOS 26.0
1111
- **Bundle ID**: `com.markdownreader.app`
1212
- **许可证**: MIT

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,20 @@
1414
- 菜单 nil target 禁用状态、PDF sheet 附着等需真实焦点环境的验证尚未覆盖(SwiftUI Commands 焦点读取无法用普通 XCTest 可靠覆盖),待补最小 UI harness
1515
- 双窗口/多目录/最小化/全屏/关闭最后窗口重开等人工回归矩阵未执行,需 GUI 环境验证
1616

17+
## [2.2.2] - 2026-07-31
18+
19+
### 修复
20+
21+
- **冷启动双击 Markdown 时窗口不前置(打不开文件)**:冷启动时 Finder 双击会先创建一个不可见默认窗口,再走 `.openInSession` 复用路径。此前只加载文档不 `activate`,导致进程存活但可见窗口数为 0,用户感知为“双击打不开文件”
22+
- `WindowCoordinator` 在复用已有窗口打开资源时同步 `activate(windowID:)`,覆盖真实 `WindowSession` 与仅测试占位 session 两种情况
23+
- `WindowCommandTarget``@Entry var windowCommandTarget` 改为手写 `FocusedValueKey`,兼容 Command Line Tools 工具链(CLT 缺少 `@Entry` 宏依赖的 SwiftUIMacros 插件)
24+
- 新增 `OpenRequestRoutingTests` 覆盖冷启动复用窗口的前置激活路径
25+
- **查找栏不支持 Shift+Enter 反向查找**`FindReplaceBar``.onSubmit` 替换为 `.onKeyPress(.return, phases: .down)`,Enter 查找下一个、Shift+Enter 查找上一个,补齐查找栏内反向遍历匹配
26+
- **标准一级菜单不跟随应用语言设置**:File / Edit / View / Window / Help 等标准菜单由 SwiftUI/AppKit 创建,不读应用自定义 `L10n`
27+
- 主 Bundle 开发语言由 `zh-Hans` 改为 `en`,并通过 `CFBundleLocalizations` 显式声明 `en` / `zh-Hans` / `zh-Hant`,使 macOS 在找不到对应语言 Bundle 本地化时正确回退英文而非简中
28+
- 新增 `MainMenuLocalizationService`:识别三种语言下的标准一级菜单标题,在 `AppDelegate` 启动时与应用内语言偏好变化时同步父 `NSMenuItem.title``submenu.title`,监听 `NSMenu.didAddItem/didChangeItem` 通知以应对 SwiftUI 重建菜单;自定义 `CommandMenu` 与菜单项继续走 `L10n`,不改动本地化架构
29+
- 新增 `MenuLocalizationTests` 覆盖三语标题映射、角色识别一致性、`Info.plist` 开发语言与支持语言声明
30+
1731
## [2.2.1] - 2026-07-15
1832

1933
### 修复

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
MarkdownReader 是一个原生 macOS Markdown 阅读器应用。不是编辑器,只是一个安静的阅读器。三栏布局:左侧目录树 + 中间渲染视图 + 右侧大纲导航。
88

9-
- **当前版本**: 2.2.1
9+
- **当前版本**: 2.2.2
1010
- **最低部署**: macOS 26.0
1111
- **Bundle ID**: `com.markdownreader.app`
1212
- **许可证**: MIT
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Markdown Reader v2.2.2
2+
3+
修复冷启动双击 Markdown 打不开文件、查找栏无法反向查找、标准菜单不跟随应用语言设置三个问题。
4+
5+
## 🐛 修复
6+
7+
### 冷启动双击 Markdown 时窗口不前置(打不开文件)
8+
冷启动时 Finder 双击会先创建一个不可见默认窗口,再走 `.openInSession` 复用路径。此前只加载文档不激活窗口,导致进程存活但可见窗口数为 0,用户感知为“双击打不开文件”。
9+
10+
- 修复:`WindowCoordinator` 在复用已有窗口打开资源时同步 `activate(windowID:)`,覆盖真实 `WindowSession` 与仅测试占位 session 两种情况
11+
- `WindowCommandTarget``@Entry var windowCommandTarget` 改为手写 `FocusedValueKey`,兼容 Command Line Tools 工具链(CLT 缺少 `@Entry` 宏依赖的 SwiftUIMacros 插件)
12+
- 新增 `OpenRequestRoutingTests` 覆盖冷启动复用窗口的前置激活路径
13+
14+
### 查找栏不支持 Shift+Enter 反向查找
15+
- 修复:`FindReplaceBar``.onSubmit` 替换为 `.onKeyPress(.return, phases: .down)`,Enter 查找下一个、Shift+Enter 查找上一个,补齐查找栏内反向遍历匹配
16+
17+
### 标准一级菜单不跟随应用语言设置
18+
File / Edit / View / Window / Help 等标准菜单由 SwiftUI/AppKit 创建,不读应用自定义 `L10n`,此前固定显示简体中文。
19+
20+
- 修复:主 Bundle 开发语言由 `zh-Hans` 改为 `en`,并通过 `CFBundleLocalizations` 显式声明 `en` / `zh-Hans` / `zh-Hant`,使 macOS 在找不到对应语言 Bundle 本地化时正确回退英文而非简中
21+
- 新增 `MainMenuLocalizationService`:识别三种语言下的标准一级菜单标题,在 `AppDelegate` 启动时与应用内语言偏好变化时同步父 `NSMenuItem.title``submenu.title`,监听 `NSMenu.didAddItem/didChangeItem` 通知以应对 SwiftUI 重建菜单
22+
- 自定义 `CommandMenu` 与菜单项继续走 `L10n`,不改动本地化架构
23+
- 新增 `MenuLocalizationTests` 覆盖三语标题映射、角色识别一致性、`Info.plist` 开发语言与支持语言声明
24+
25+
## ✅ 测试
26+
27+
- 新增 `OpenRequestRoutingTests` 覆盖冷启动复用窗口激活路径
28+
- 新增 `MenuLocalizationTests` 覆盖标准菜单本地化映射与静态回归
29+
- 全部 135 个测试通过
30+
31+
## 🖥️ 系统要求
32+
33+
- macOS 26 (Tahoe) 或更高版本
34+
- Apple Silicon 原生支持
35+
36+
---
37+
38+
感谢使用 Markdown Reader!如有问题或建议,欢迎在 GitHub Issues 反馈。

0 commit comments

Comments
 (0)