为了账号安全,请及时绑定邮箱和手机立即绑定

Golang Fyne v2 自定义入口小部件无法否决 FocusGained() 函数?

Golang Fyne v2 自定义入口小部件无法否决 FocusGained() 函数?

Go
繁星淼淼 2023-03-15 14:59:28
我目前在 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 guiimport (    "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})}
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

不要扩展BaseWidgetand ,直接Entry扩展即可。widget.Entry通过该更改,它应该可以按预期工作。



查看完整回答
反对 回复 2023-03-15
  • 1 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号