2011年1月22日土曜日

MacRuby・Viewでマウスのイベントを得る

次は計画通り今度はマウスイベントを拾ってみる。

ViewをカスタムViewにしてそこに「mouseDown」とかと書くのだ、とわかるまでしばらくかかる。他の方法もあるのかな。

cocoaフレームワークにはいろんなContorollerがあって、ViewContorollerやらViewそのものやら、どこに何を書くべきなのかまだ把握できていない。勉強することが多いなあ。

まず、とにかくだだっとやってみたいことをとにかく書いてみるのも大切かな、と考えつつ
def scrollWheel(event)
  puts " Wheel!"
  puts "deltaX :"+event.deltaX.to_s
  puts "deltaY :"+event.deltaY.to_s
  puts "deltaZ :"+event.deltaZ.to_s
 end

と書いたら自分のWindowの上のマウスホイールを簡単に捉えることができた。ほうほう、deltaYがホイールの前後の動きを表しているのか。ってーことは、deltaXは横の動き?じゃあZは何?

ま、おいおい研究していくことにする。近い将来の自分のためにやったことを順番に書くと、
1,新しいファイルを作って「class MyEventView < NSView」というclassを書く。
2,InterfaceBuilderで今までNSViewだったviewのclassをMyEventViewにする。

あとはViewのclassにあれこれ追加して実験していけばいい、と。

・・・でもこのViewからどうやってMyControllerに書いてあるメソッドを呼び出せばいいんだろうorz。

MyControllerはNSWindowControllerだから、ウィンドウを読み込んで表示する役割だけさせて、Eventの応対はこの際Viewに詰め込んでいいんだろうか。

というわけで、新しいプロジェクトを作って実験してみることにする。どーせメインウィンドウを透明にしてデスクトップいっぱいに広げて、という方法を試してみないといけなかったし。

0 件のコメント:

コメントを投稿