Mac OSX Dev:自定义ViewController未接收鼠标事件

时间:2013-06-12 20:11:28

标签: macos events mouse nsresponder

我需要创建一个快速演示应用程序(asap)。它有一个NSImageView(带有一个完整的窗口大小的照片)和鼠标点击,拖动和移动它。

还有一个NSTextField(Label)来显示窗口上的鼠标事件和位置。

我使用Cocoa应用程序模板创建了一个项目,并创建了一个新的ViewController,将视图控制器视图添加到了windows contextView,并且NSImageView显示正常 - 标签也是如此。

但是事件如

- ( void ) mouseDown:( NSEvent * )event;
- ( void ) mouseMoved:( NSEvent * )event;

不要做任何事情。如果我有一个NSLog,它们永远不会被击中。

我已经设定:

- ( BOOL ) becomesFirstResponder
{
    return YES;
}

但这也没有任何区别。

有人可以指出我做错了什么吗?我是2年以上的iOS开发者,这是我的第一个Mac OS X应用程序。我必须在接下来的24小时内完成这项工作:(

2 个答案:

答案 0 :(得分:1)

要捕获鼠标按下/向上事件,您应该继承NSImageView并在那里定义mouseDown: / mouseUp:。然后,您可以将这些事件转发给控制器。

答案 1 :(得分:0)

鼠标事件试图在“视图控制器”类中使用。

我已经发现了一个示例代码(第三方),它显示它们必须位于'NSView'对象中,因此我必须以编程方式创建一个自定义NSView对象来跟踪鼠标并且它们都在工作。< / p>

以下是网址:

http://www.markdouma.com/developer/MouseMovedvsTrackingAreas.zip