如果从子视图中拖入,NSView将丢失mouseMoved / mouseDragged

时间:2013-05-16 13:53:56

标签: objective-c cocoa nsview

A =父NSView; B =孩子NSView;

B有一个小的NSTrackingArea; B是A的小子视图;

如果移动,单击,拖动空白区域,则正确接收mouseMoved和mouseDragged事件。

如果我单击B并将鼠标拖出其边界之外的A,则A不会收到任何mouseMoved或mouseDragged事件。

有人能指出我能做些什么来让superview A对这种阻力作出反应吗?

1 个答案:

答案 0 :(得分:0)

我已经观察到了这一点,并且可以通过以下方法解决它:

  1. 创建一个NSViewController并将viewA设置为其“视图”属性。
  2. 就我而言,我在视图控制器中实现了mouseDragged,但是 您可以尝试在视图上查看获得的结果。 mouseEntered 和mouseExited在视图子类中实现。

提示:请确保您根据需要更新跟踪区域边界。 希望这会有所帮助。