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

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

后续步骤
22 四月 2025