Почему нажатие клавиши не вызывается после нажатия на встроенные элементы управления? - PullRequest
1 голос
/ 27 февраля 2009
Shoes.app do
 keypress do |k|
    if k==:f1
      alert("Foo bar")
    end
  end
  button "foo"
end

Нажатие клавиши F1 вызывает всплывающее окно с предупреждением, но. Однажды я нажимаю кнопку «foo», т.е. если фокус меняется на собственный элемент управления в приложении. события нажатия клавиш больше не фиксируются. любой способ обойти это?

Я использую Windows XP.

1 Ответ

2 голосов
/ 18 января 2010

Это все еще ошибка в Shoes on Windows на момент написания. Если вам удастся выполнить очистку и перерисовку всего, что вы можете снова вернуть события нажатия клавиш, например:

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

Хотя этот трюк подходит для примера в вашем вопросе, я не уверен, что он бы хорошо подошел для реального приложения.

...