Golang Fyne v2自定义条目小部件不能否决FocusGained()函数?



我目前在Golang Fyne V2框架中工作。当我的条目小部件被点击/选择时,我想调用一个自定义函数。我的方法是制作一个自定义条目小部件。https://developer.fyne.io/api/v2.0/widget/entry.html

问题是我的自定义小部件没有覆盖以下函数:

func (e *Entry) Tapped(ev *fyne.PointEvent)

func (e *Entry) FocusGained()

我的自定义输入字段看起来基本是这样的。我看到inputField在Gui容器中呈现,这很棒。但是当我点击它的时候它会显示EXTRA FUNCTION call;未被打印

package gui
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/driver/desktop"
"fyne.io/fyne/v2/widget"
)
type InputField struct {
widget.BaseWidget
inputText      *widget.Entry
customFunction func()
}
func NewInputField() *InputField {
i := &InputField{
BaseWidget: widget.BaseWidget{},
inputText:  widget.NewEntry(),
}
i.inputText.Resize(i.MinSize())

i.customFunction = func() {
fmt.Println("EXTRA FUNCTION CALL")
}
i.ExtendBaseWidget(i)
return i
}
func (i *InputField) MinSize() fyne.Size {
return fyne.NewSize(600, 30)
}
func (i *InputField) Tapped(ev *fyne.PointEvent) {
fmt.Println("I have been tapped")
i.customFunction()
}
func (i *InputField) FocusGained() {
fmt.Println("I have been focussed")
i.customFunction()
}
func (i *InputField) FocusLost() {
fmt.Println("Focus lost")
}
func (i *InputField) MouseDown(m *desktop.MouseEvent) {
fmt.Println("MouseDown")
i.customFunction()
}
func (t *InputField) CreateRenderer() fyne.WidgetRenderer {
return NewBaseRenderer([]fyne.CanvasObject{t.inputText})
}

不扩展BaseWidgetEntry,直接扩展widget.Entry。修改后,它应该像你期望的那样工作。

相关内容

  • 没有找到相关文章

最新更新