捕获键 down/up 事件

Capture key down/up event

有没有办法捕获 window 上的按下和按下事件?我知道 widget.Entry 是可能的,但它是整个 fyne.Window 还是像 widget.Group 这样的小部件,所以我可以将它用作 全局容器 ?

我也知道可以通过 myWindow.Canvas().SetOnTypedKey(... 之类的操作来捕获按键事件,但这不是我想要的。我正在寻找一种方法来了解何时按下特定键以及何时释放它。

按键向上和向下事件是特定于桌面的扩展,因此应谨慎使用。在尝试使用 canvas.

的桌面版本之前,您必须确保该应用程序 运行 正在作为桌面应用程序使用

如您所见,首先检查window canvas是否有能力,然后要求在桌面按键事件上得到通知。

    if deskCanvas, ok := w.Canvas().(desktop.Canvas); ok {
        deskCanvas.SetOnKeyDown(func(key *fyne.KeyEvent) {
            log.Println("Desktop key down", key)
        })
        deskCanvas.SetOnKeyUp(func(key *fyne.KeyEvent) {
            log.Println("Desktop key up", key)
        })
    }

如果 运行 在移动设备上,这将被简单地忽略,因此请确保您的应用程序可以在没有它们的情况下在移动设备上运行。