1

我需要创建一个快速演示应用程序(尽快)。它有一个 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 小时内完成这项工作:(

4

2 回答 2

1

要捕获鼠标向下/向上事件,您应该在NSImageView其中定义mouseDown:/子类mouseUp:。然后您可以将这些事件转发给控制器。

于 2013-06-13T13:17:03.097 回答
0

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

从那以后,我找到了一个示例代码(第 3 方),表明它们必须位于“NSView”对象中,因此我必须以编程方式创建一个自定义 NSView 对象来跟踪鼠标,并且一切正常。

这是网址:

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

于 2013-06-13T14:54:24.597 回答