Behandeln von Mausereignissen in einem transparenten Fenster bedingt

8

Ich entwickle eine Desktop-Anwendung, in der ich Mausereignisse in einem transparenten Fenster aufnehmen kann. Transparente NSWindow nimmt keine Mausereignisse. Daher habe ich setIgnoreMouseEvents auf NO gesetzt, wodurch das transparente Fenster Mausereignisse annehmen kann.

Ich habe das Problem in folgendem Szenario: In diesem Fenster gibt es eine dynamisch erzeugte rechteckige Form. Das transparente Fenster sollte keine Mausereignisse in dieser Region enthalten. Es sollte an das Fenster (einer anderen App) delegiert werden, das hinter dieser Form vorhanden ist. Wenn das mouseDown-Ereignis innerhalb der Form ist, setze ich setIgnoreMouseEvents auf YES. Wenn der Benutzer jetzt Mausereignisse außerhalb der Form ausführt, sollte das transparente Fenster das Ereignis übernehmen. Da setIgnoreMouseEvents auf YES gesetzt ist, verwendet window keine Mausereignisse.

Es gibt keine Möglichkeit festzustellen, dass das mouseDown-Ereignis aufgetreten ist, damit setIgnoreMouseEvents auf NO gesetzt werden kann.

Könnte mir jemand die beste Methode vorschlagen, um Mausereignisse in einem transparenten Fenster zu behandeln?

Deepa

    
spd 31.05.2011, 06:04
quelle

1 Antwort

3

Ich bin gerade auf Quartz Event Taps gestoßen, mit denen Sie das Mausereignis erfassen und Ihren eigenen Callback ausführen können.

Habe es nicht selbst ausprobiert, aber es scheint, als ob Sie in der Lage sein sollten zu überprüfen, wohin der Mausklick fiel und bedingt auf den Werten

ausgeführt wurde

Hier ist ein Beispiel :

%Vor%     
rapidex 22.01.2015 14:47
quelle