我正试图为Command + T的浏览器应用程序创建一个按键监听器,以触发打开新标签页的方式,就像大多数实际的浏览器一样。
查找了一些可能的解决方案,看来我可能必须使用KeyCombination
,但是我找不到用于命令键的任何东西。到目前为止,我找到的最接近的是Control + T。
private KeyCombination newTab = new KeyCodeCombination(KeyCode.T, KeyCombination.CONTROL_DOWN);
...
root.setOnKeyPressed(event -> {
if (newTab.match(event))
tabPane.getTabs().add(new Tab());
});
我知道这目前可以正常工作,但是我真的想使用命令而不是控制,因为它更加自然和直观。
最佳答案
我相信您正在寻找 KeyCombination.SHORTCUT_DOWN
。
KeyCombination
...shortcut
修饰符用于表示修饰键,该修饰键通常在主机平台上的键盘快捷方式中使用。例如,在Windows上是control
,在Mac上是meta
(命令键)。通过使用shortcut
键修饰符,开发人员可以创建独立于平台的快捷方式。因此,“快捷键+ C”组合键在Windows上内部处理为“Ctrl + C”,在Mac上内部处理为“Meta + C”。
从该文档中,看起来它们将“命令”称为“元”。如果您不想使用跨平台的SHORTCUT_DOWN
,则可以改用 KeyCombination.META_DOWN
。