键盘事件
在 Compose Multiplatform 桌面版中,您可以通过两种不同范围设置事件处理器来管理键盘事件:
基于焦点元素的事件处理器
窗口范围内的事件处理器
焦点组件中的事件
此方法意味着键盘按键会触发当前焦点组件的事件处理器。
典型场景是为 TextField 等活跃控件定义键盘处理器。若要在按键触发默认操作前拦截事件,可同时使用 onKeyEvent 和 onPreviewKeyEvent 修饰符。其中 onKeyEvent 用于处理单个按键事件,而 onPreviewKeyEvent 更适合定义快捷键。
以下示例展示了 TextField 根据按住 Ctrl 时不同按键触发不同交互行为:
(代码块保持原文不变)

窗口范围内的事件
要为当前窗口定义始终有效的键盘事件处理器,可使用 Window、 singleWindowApplication 和 Dialog 函数提供的 onPreviewKeyEvent 与 onKeyEvent 参数。两者的区别在于未消费事件的派发方式: onPreviewKeyEvent 将事件派发给首个子元素,而 onKeyEvent 将事件派发给父组合项。通常推荐使用 onPreviewKeyEvent 拦截事件,因其支持实现全屏键盘快捷键。
以下示例演示了窗口级交互,例如按 Escape 关闭弹窗对话框,以及通过 Ctrl+Shift+C 快捷键切换窗口内容:
(代码块保持原文不变)

后续步骤
22 四月 2025