マウスイベントを無視する方法
ビューAの上にビューBを置くとする。CocoaやCappuccinoでビューBではマウスイベントを扱わずにビューAでマウスイベントを扱いたい場合はどうするか?通常だと、ビューBにマウスイベントが配信されてしまい、ビューAへは配信されない。
これを解決するのが、hitTest:。hitTest:はマウスイベントが配信されたときに自分がそのマウスイベントを消費するかどうかを決めるメソッド。
ビューBで次のソースのようにhitTest:を実装すると、ビューBに配送されたマウスイベントは無視でき、ビューAへマウスイベントが配送されるようになる。
- (id)hitTest:(CPPoint) aPoint { return nil; }
ちなみに、hitTest:は自身のビューの範囲を超えた領域を自分の領域とさせることもできる。性能に大きく影響するので、なるべくなら使わない方がよいだろう。