Ich habe einen Eintrag überschrieben, um mit einem Registerkarte in einer FYNE -Tabelle umzugehen. Mein Ziel ist es, die Bearbeitung zu beenden und in die nächste Zelle zu gehen, wenn die Registerkarte wie in Excel gedrückt wird. Es scheint jedoch, als würde Registerkarte vom Rahmen absorbiert. Andere Schlüssel wie Pfeile und Eingabetaste werden von meinem Typekey -Ereignishandler aufgegriffen, wie ich aus dem FMT.println ("TypedKey", Ereignis.Name) zu Beginn des Ereignishandlers beobachtet habe. Tab scheint die Bearbeitung zu beenden und zum Etikett zu wechseln, ohne OnSubmited aufzurufen.
Code: Select all
type EditingEntry struct {
widget.Entry
OnTab func()
}
func NewEditingEntry() *EditingEntry {
e := &EditingEntry{}
e.ExtendBaseWidget(e)
return e
}
func (e *EditingEntry) TypedKey(event *fyne.KeyEvent) {
fmt.Println("TypedKey", event.Name)
if event.Name == fyne.KeyTab {
if e.OnTab != nil {
e.OnTab()
}
return
}
e.Entry.TypedKey(event) // Call base behavior
}
Ich verwende die Version fyne.io/fyne/v2 v2.6.1 auf Ubuntu Linux 22.04.5 mit XWindows, KDE. Die Tabelle verwendet Widget.Stack für die Zellen, die Widget.label für die nicht bearbeiteten Zellen und die Bearbeitung von Bearbeitungszellen enthält.