Shoes.app do
keypress do |k|
if k==:f1
alert("Foo bar")
end
end
button "foo"
end
F1 を押すと、警告ボックスがポップアップしますが。ボタン「foo」をクリックすると、フォーカスがアプリのネイティブコントロールに変更されます。キー押下イベントはキャプチャされなくなりました。それを回避する方法はありますか?
ウィンドウズXPを使用しています。
これは、執筆時点ではまだ Windows 上の Shoes のバグです。クリアしてすべてを再描画することで逃げることができれば、キープレスイベントを再び取得できます。次に例を示します。
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
このトリックは質問の例では機能しますが、実際のアプリにうまく変換できるかどうかはわかりません。