如何在Ruby Shoes GUI中将函数与对象绑定?

如何在Ruby Shoes GUI中将函数与对象绑定?,ruby,shoes,Ruby,Shoes,只有在按下enter键且焦点为e_ln1时,如何调用加法?如果我在@e_ln2处于焦点时单击enter,则也会执行@e_ln1中的添加,但我不想要它 Shoes.app do @e_ln1 = edit_line(width: 150, height: 20) @e_ln2 = edit_line(width: 150, height: 20, left: 0, top: 60) keypress do |k| if k == "\n"

只有在按下enter键且焦点为e_ln1时,如何调用加法?如果我在
@e_ln2
处于焦点时单击enter,则也会执行
@e_ln1
中的添加,但我不想要它

Shoes.app do

    @e_ln1 = edit_line(width: 150, height: 20)
    @e_ln2 = edit_line(width: 150, height: 20, left: 0, top: 60)

   keypress do |k|
        if k == "\n" 
            @e_ln1.text = @e_ln1.text.to_i + 1
        end
    end

end

就我目前所知,这在鞋3和鞋4中都是不可能的。在Shoes 4中甚至有一个bug,我们在关注输入字段时没有按键。对不起:-/

我现在没有运行Shoes 3,但是您可以查看并检查“\n”是否到达输入字段,并基于此进行检查


否则,我打开了一个Shoes 4发行版,以

这是不可能的,就我目前所知,在Shoes 3和Shoes 4中都是如此。在Shoes 4中甚至有一个bug,我们在关注输入字段时没有按键。对不起:-/

我现在没有运行Shoes 3,但是您可以查看并检查“\n”是否到达输入字段,并基于此进行检查


否则,我在Shoes3.3.1中打开了一个Shoes 4问题,在编辑线上有一个完成事件

Shoes.app do
    @e_ln1 = edit_line(width: 150, height: 25)
    @e_ln2 = edit_line(width: 150, height: 25, left: 0, top: 60)

    @e_ln1.finish = proc { @e_ln1.text = @e_ln1.text.to_i + 1 }
end

只需在感兴趣的编辑行中按enter键即可触发它。在Shoes3.3.1中,编辑行上有一个完成事件

Shoes.app do
    @e_ln1 = edit_line(width: 150, height: 25)
    @e_ln2 = edit_line(width: 150, height: 25, left: 0, top: 60)

    @e_ln1.finish = proc { @e_ln1.text = @e_ln1.text.to_i + 1 }
end
只需在感兴趣的编辑行中按enter键即可触发它