为应用添加快捷方式
一在Canvas注册
一 在Canvas注册
有许多已定义的标准快捷键(如fyne.ShortcutCopy),它们连接到标准的键盘快捷键和右键菜单。 添加新快捷方式的第一步是定义快捷方式。
大多数情况下,都是一个键盘触发的快捷方式,这是一个桌面扩展。
为此,我们使用桌面desktop.CustomShortcut,例如,使用Tab键和Control修饰符,你可以这样做:
ctrlTab := desktop.CustomShortcut{KeyName: fyne.KeyTab, Modifier: desktop.ControlModifier}
请注意,这个快捷方式可以被重用,所以您也可以将它附加到菜单或其他项目。 在这个例子中,我们希望它总是可用的,所以我们将它注册到窗口的Canvas中,如下所示:
ctrlTab := desktop.CustomShortcut{KeyName: fyne.KeyTab, Modifier: desktop.ControlModifier} w.Canvas().AddShortcut(&ctrlTab, func (shortcut fyne.Shortcut) { log.Println("We tapped Ctrl+Tab") })
正如你所看到的,以这种方式注册一个快捷方式有两个部分——传递快捷方式定义和一个回调函数。 如果用户键入键盘快捷键,那么函数将被调用并输出。
二 向Entry添加快捷方式
对于一个快捷方式仅应用在当前获得焦点的项目上,它也是非常有用。这种方法可以用于任何可聚焦的小部件,并通过扩展小部件和添加TypedShortcut处理程序来管理
type myEntry struct { widget.Entry } func (m *myEntry) TypedShortcut(s fyne.Shortcut) { if _, ok := s.(*desktop.CustomShortcut); !ok { m.Entry.TypedShortcut(s) return } log.Println("Shortcut typed:", s) }
从上面的摘录中,您可以看到TypedShortcut处理程序是如何实现的。 在这个函数中,你应该检查快捷方式是否属于之前使用的自定义类型
如果是标准的快捷方式,那么最好调用原始的快捷方式处理程序(如果小部件有) 。 完成这些检查后,您可以将快捷方式与您正在处理的各种类型进行比较(如果有多个)。
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~