0

他のコードが実行されている間にキー (ctrl) が押されていることをシミュレートするにはどうすればよいですか? 次のメソッドの実装は何でしょうか?

self ctrlDownWhile: [self doSomething]
4

1 に答える 1

1

「ctrlDown」状態を変更することにより、入力状態を「だます」ことを試みることができます。悪いニュースは、それにアクセスするためのセッター メソッドがないことです (おそらく私のバージョンでのみ)。

ctrlDownWhile:aBlock
  "aBlock will see ctrlDown as true"

  |indexOfCtrlState|

  indexOfCtrlState := InputState allInstVarNames indexOf:'ctrlState'.

  InputState default instVarAt:indexOfCtrlState put:1.   
  aBlock  
    ensure: [
      InputState default instVarAt:indexOfCtrlState put:0.
    ].

別の方法は、CTRL キーの keyPress & keyRelease イベントを作成し、ブロックの評価の前後に WindowSensor にキューに入れることです。

于 2012-06-04T21:07:34.993 に答える