我的應用程序有一個數據網格,以及許多其他的UIComponents(按鈕,菜單等)。我有一個普通的階段KeyDown處理程序以及特定的數據網格。我試圖實現的行爲變得比我想象的更復雜:基本上,當使用鍵盤箭頭時,我希望datagrid始終能夠聽到關於這樣的命令的信息,即使它沒有焦點。鍵盤操控++
可能的方法我認爲:
有DG成爲市場關注焦點時刻:看來愚蠢/棘手 - 基本上需要記住與其餘任何互動之後讓焦點回到DG界面,這顯然不能縮放。
嘗試從舞臺的KeyDown處理程序設置DG焦點:好像時間不工作,因爲DG獲得焦點來不及「聽」的事件。
從舞臺的keydown的處理程序,檢查DG沒有焦點,如果是這樣傳遞的事件。這在理論上似乎是有道理的,但我不知道如何正確執行此操作,因爲我的階段keyDown處理程序使用捕獲,因此似乎一遍又一遍地捕獲同一事件。
我想知道是否有更簡單的東西,我只是缺乏經驗。很想聽聽你的想法。
謝謝!
˚F
大衛,感謝您的諮詢。它有一個小比這更復雜 - 舞臺的KeyDown處理程序仍然出現的DG處理程序之前,並因此preventDefault從未發生過整個事情StackOverflows ......但我也跟着從第二階段的處理程序,具有捕獲相同的路徑==假的,一切似乎都很好。順便說一句,你碰巧知道爲什麼SystemManager的keyDownHandler抓住箭頭鍵(除其他事項外)並重新分派他們 - 我的KeyDown處理程序被擊中兩次,我不知道是否有任何充分的理由是。 – 2011-02-25 23:05:37
對不起,我不知道。但是,如果你問一個新問題,請發佈一個鏈接 - 我有興趣找出答案。 – 2011-02-26 05:06:39
是否調度了兩次keyboardEvent?或者只有一次,但被捕獲兩次?也許你可以看看你正在轉發...你應該設置'bubbles'屬性設置爲false事件的'bubble'財產,否則就分派給所有頂級事件監聽器......你不希望我想在這種情況下...... – CGBe 2012-05-29 15:40:38