在View上方没有调用mouseMoved

时间:2011-08-11 01:17:30

标签: objective-c cocoa nsview nsresponder

我有NSView的子类,它实现了mouseMoved。

然而,当我将鼠标移到视图上时,mouseMoved永远不会被调用。为什么呢?

我在OS X Lion上。

谢谢, 万斯

3 个答案:

答案 0 :(得分:4)

即使使用-setAcceptsMouseMovedEvents:,您的视图也只会获得-mouseMoved:当它是第一个响应者时。如果您希望在视图不是第一响应者时接收鼠标移动事件,请查看NSTrackingArea。

答案 1 :(得分:2)

尝试通过NSWindow类的setAcceptsMouseMovedEvents:方法在包含视图的窗口上启用mouseMoved事件

答案 2 :(得分:1)

我通过将这个hack放入CCDirectorMac解决了这个问题: 后:

 [fullScreenWindow_ makeMainWindow];
 [fullScreenWindow_ makeKeyAndOrderFront:self];

将acceptMouseMovedEvents设置为yes:

 [fullScreenWindow_ setAcceptsMouseMovedEvents:YES];