我目前在 Golang Fyne V2 框架中工作。我想在单击/选择我的条目小部件时调用自定义函数。我的方法是制作一个自定义条目小部件。 https://developer.fyne.io/api/v2.0/widget/entry.html
问题是我的自定义小部件没有否决以下功能:
func (e *Entry) Tapped(ev *fyne.PointEvent)
或者
func (e *Entry) FocusGained()
我的自定义输入字段基本上是这样的。我看到在 Gui 容器中呈现的 inputField 太棒了。但是当我点击它时,“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})
}
萧十郎
相关分类