現在、HaxeUI ライブラリを使用するアプリケーションに取り組んでいます。私のアプリケーションではTextInput
、OpenFL の に基づいたオブジェクトを作成していますTextField
。Ctrl残念ながら、Windows や Neko 用にコンパイルする場合、これらのフィールドでは+ V、Ctrl+ C、Ctrl+などの基本機能を使用できませんA。
その結果、単にイベントをTextInput
使用してこれらの特定の機能を検出するクラスの独自の拡張を作成できると感じました。KeyboardEvent.KEY_DOWN
以下は、私の実装の関連するスニペットです。
class SmartTextInput extends TextInput {
public function new() {
super();
this.addEventListener(KeyboardEvent.KEY_DOWN, performPress);
}
private function performPress(e:KeyboardEvent):Void {
if(e.ctrlKey) {
trace("CTRL PRESSED!");
switch(e.keyCode) {
case Keyboard.V: trace("PASTE!");
}
}
}
}
と を押すCtrlとV、 と が印刷され"CTRL PRESSED!"
ます"PASTE!"
。ただし、私は しか得られ"CTRL PRESSED!"
ないので、うまくいきません。実際、いくつかの精力的なテストの後、Ctrlボタンが押されていると、とキーKeyboardEvent.KEY_DOWN
以外のキー押下が登録されないことがわかりました。つまり、 を最初に押さない限り、検出と保持を同時に行うことはできません。ただし、従来は最初に押すので、これはうまくいきません。AltShiftCtrlV VCtrl
Ctrl+VのようなアクションTextField
を OpenFL for Windows に登録する方法はありますか? または、少なくとも、 の連続したキーの押下を検出する方法はありCtrlますVか? CtrlonKEY_DOWN
とVonをつけてみましKEY_UP
たが、実用に耐えるほどの反応はありません。
OpenFL 3.6.0、Lime 2.9.0、および HaxeUI 1.8.17 を使用しています。HaxeUI には OpenFL Legacy が必要であることに注意してください。非レガシー OpenFL では、Ctrl+をV問題なく動作させることができました。