我正试图为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

07-24 15:48