0

cocoa で (のように) クリックスルー ウィンドウを使用することはできますが_window.ignoreMouseEvents = TRUE、ウィンドウの上でマウスがクリックされたことを検出することはできますか? または、イベントを無視する代わりに、それらを登録し、何らかの方法でそれらを転送し、ウィンドウの背後にあるものに伝播しますか?

4

1 に答える 1

0

あなたが探しているのは、NSView メソッドの hitTest だと思います。このメソッドは、マウス クリックが受信されると、すべてのビューで呼び出されます。

- (NSView*)hitTest:(NSPoint)aPoint
{
    return self;
}

self を返すことは、クリックが次のサブビューに転送されないことを意味します。

[super hitTest] を返すと、クリックがビュー階層の親ビューに転送されます。これを使用すると、他に何も起こらずにクリックを登録できます。

次のようなものです:

- (NSView*)hitTest:(NSPoint)aPoint
{
    [self propagateEventToNextApplication];
    return [super hitTest:aPoint];
}

お役に立てれば!

于 2013-03-21T13:55:06.070 に答える