忽略mac上awt组件中的输入法输入

i2loujxw  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(348)

在mac电脑上,美国国际pc键盘布局中的几个键都是死键,例如 " , ' 和backtick。打字时 " ,mac开始输入法合成- " 以合成模式显示(通常带下划线),并等待进一步输入。如果我使用 a ,然后输入法将完成,我将得到字符 ä . 有几个这样的死键,例如英国键盘布局将alt+n视为死键 ñ .
在javaawt应用程序中,是否有任何方法可以禁用此行为,以便只键入原始密钥?e、 g.在美国国际pc键盘布局中,如果我键入“+a,我想接收 " 以及 a ,而不是一个事件 ä . 在英式键盘布局中,我想键入alt+n+n并接收事件 Alt+n 以及 n 而不是 ñ .
如果我打电话 Component.enableInputMethods(false) ,则我的事件队列将接收 Alt+n 事件,但如果我接着n,我收到 ñ .
类似地,如果我使用中文键盘布局,即使在调用 Component.enableInputMethods(false) .
有没有办法完全禁用输入法处理,只接收键入的键?
对于上下文,我尝试实现类似vim的行为-正常模式编辑需要ascii输入,而插入模式当然会按预期处理输入方法。虽然在正常模式下切换到ascii键盘布局是很理想的,但即使是mac的“”键盘布局也有死键 Alt+n , Alt+u , Alt+I 以及 Alt+e 以及 Alt+Backtick . 告诉用户创建一个自定义的键盘布局像ukulele是不可行的选择。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题