-mouseUp事件有时会传递给错误的视图

时间:2017-06-01 21:11:24

标签: objective-c macos cocoa mouseevent nsevent

我觉得有点头疼?

基本上我们有这个不一致的错误,我们的一个自定义控件(一个开关)收到一个-mouseUp事件,而没有收到-mouseDown,但踢球者是鼠标位置不在任何地方靠近开关的地方

特别是在发生之后:

  • 右键单击打开上下文菜单(不在交换机附近)
  • 左键单击某处以关闭上下文菜单(不在交换机附近)

这是callstack:
enter image description here

请注意,该事件直接传递给我们的自定义控件

我已经尝试过玩-acceptsFirstMouse:-acceptsFirstResponder无效

我还确认响应者链中的开关

我已将此代码放入-mouseUp:

if( !NSPointInRect( [self convertPoint:[theEvent locationInWindow] fromView:nil], [self bounds] ) )
{
    return;
}

在收到-mouseUp并且交换机上没有鼠标位置时成功中断。

但它看起来很有趣,就像我在这里遗漏了一些东西

交换机如何接收-mouseUp

0 个答案:

没有答案