Photoshop Extensionの開発19 キーボードイベント
前回述べたとおりCEPの基本のイベントはブラウザ同様の手法で反応します。それではkeyイベントを登録すればExtension上のショートカットを登録できるのではないのだろうか?そう思っていた時期が私にもありました。
ウインドウにkeydownイベントを登録して準備完了。Photoshop上で何かしらキーを押す。
反応しない。ちなみにfキーを押すと
Photoshopのデフォルトのショートカット通りフルスクリーンモードになりました。Photoshopのショートカットは反応するけどパネルには反応しない?そうです、キーイベント自体ウインドウに登録してもパネルそのものがウインドウになるのでパネルにフォーカスが当たっていない時にはどのようなイベントむ発動しないので。(ちなみにこのwindowに対するキーボードイベント、Windowsだとパネルがアクティブな状態に限り反応しましたがMacだと前述の通り反応しませんでした。おそらくMac OS上だとパネル自体なかなかアクティブになってくれないのだと思います。)ちなみに何かしら特定の要素に登録すればMacでもキーボードイベントに反応してくれます。例えば。
というテキストエリアのhtmlに対して
というイベントを登録
テキストエリアにフォーカスしている時にキーボードを押すとアラートが反応しました。但し当初の目的のPhotoshop自体にキーボードショートカットを登録する事自体はなかなか絶望的です。但しかなり回りくどいやり方をすれば不可能ではないらしく、猛者によってはアクション経由でショートカットを登録しているらしいのですがそこまで深く探った事はないので今回はここまでにしておきます。