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 回答