[Bug] 桌面端缺少编辑菜单:macOS 上 ⌘C/⌘V/⌘X/⌘A/⌘Z 无响应 #6937
gaofeng21cn
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
桌面端(Electron 壳)没有注册编辑菜单,因此 macOS 上标准的文本编辑快捷键——⌘C、⌘V、⌘X、⌘A、⌘Z——在应用内无响应。Web UI(
dsh web)不受影响,因为浏览器自带这些行为。任何需要在 DSH 里粘贴 API Key、粘贴代码片段或复制回答的用户都会遇到。Reproduction
printf 'PASTE-PROBE' | pbcopy为排除「焦点不对」的干扰,用辅助功能接口确认焦点确实在输入框上:
Current behavior
在未改动的
dsh-v0.1.6-alpha.1桌面端构建上实测:⌘V 之后输入框
value仍为空字符串,剪贴板内容不变:即按键被丢弃,而不是粘贴失败。同机的其他原生应用粘贴同一段文本正常。
由代码可判定、但我没有逐项实测的部分:⌘C/⌘X/⌘A/⌘Z 与输入框右键菜单同样没有处理者。
main.ts的模板里不存在editMenurole,而Menu.setApplicationMenu()会整体替换 Electron 的默认菜单——默认菜单正是这些 accelerator 与右键项的来源。⌘V 不是特例,只是最容易被注意到的那一项。Expected behavior
桌面端作为原生 macOS 应用,应提供标准编辑快捷键与右键菜单:⌘C/⌘V/⌘X/⌘A/⌘Z 可用,输入框右键出现剪切/复制/粘贴/全选。
Cause
apps/desktop/src/main.ts用自定义模板整体替换了默认菜单:macOS 上这些快捷键由应用菜单里的 role 分发到 responder chain(
editMenurole 提供 Undo/Redo/Cut/Copy/Paste/Select All 及其 accelerator)。模板里没有它,默认菜单又已被替换,于是没有对象处理这些按键。右键菜单同理:没有注册webContents.on('context-menu')。Fix(已在本地验证)
保持现有应用菜单不变,补回平台编辑菜单:
{ role: 'editMenu' };context-menu:可编辑区域提供 undo/redo/cut/copy/paste/pasteAndMatchStyle/selectAll,选中文本时提供 copy/selectAll。重新打包安装后逐项实测通过:
Apple, DeepSeek Harness, Edit),「Paste」项可用;由于本仓库不接受外部 PR,我可以把补丁直接贴在讨论里(约 60 行,含测试),或按维护者偏好的其他实现方向调整——例如保留 Electron 默认菜单再增量追加应用条目。请告知倾向。
Environment
0.1.6-alpha.1(tagdsh-v0.1.6-alpha.1,apps/desktop构建的已签名.app)$DSH_HOME为全新目录All reactions