2009-02-27 58 views
1
Shoes.app do 
keypress do |k| 
    if k==:f1 
     alert("Foo bar") 
    end 
    end 
    button "foo" 
end 

按F1会导致警告框弹出,但是。一旦我点击按钮“富”,即如果焦点更改为应用程序中的本地控件。按键事件不再被捕获。 任何方式来解决它?为什么在点击原生控件后不能调用keypress?

我使用的是Windows XP。

回答

2

在编写本文时,这仍然是Windows上Shoes的一个bug。如果你能逃脱做了明确和重绘一切你能得到的按键事件再次,如:

Shoes.app do 
    def drawbutton 
     @holder.clear do 
      button "foo" do 
       drawbutton 
      end 
     end 
    end 

    @holder = stack 

    drawbutton 

    keypress do |k| 
     if k==:f1 
      alert("Foo bar") 
     end 
    end 
end 

虽然这招适用于你的问题的例子,我不知道它会很好的解读到真正的应用程序。

相关问题