检测NSOpenGLView上的触摸

时间:2010-01-05 20:47:09

标签: objective-c cocoa opengl-es

我已将NSOpenGLView添加到我的MainMenu.xib文件中,并已实施drawRect以便绘制它,这非常有用,到目前为止一切顺利。

如何检测屏幕上的触摸?我想我可以在Interface Builder中的NSOpenGLView区域上转储一些透明按钮或其他东西吗?

应用程序很简单,我只需知道触摸了哪个网格区域。

1 个答案:

答案 0 :(得分:1)

无需添加透明按钮或叠加层。

我假设这是用于手机,因为你提到了Cocoa Touch,但我不知道手机的NSOpenGLView。您需要查看Apple示例并通过覆盖子类中的+layerClass来创建EAGLView:

+ (Class)layerClass {
    return [CAEAGLLayer class];
}

接下来,确保在IB中检查“已启用用户交互”。

最后,实现触摸方法调用:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

这些将告诉您用户触摸表面的位置以及手指的数量。你可以从那里完成剩下的工作。尝试创建模板OpenGL项目并查看它。此外,Jeff LaMarche在他的博客上有一些很好的iPhone OpenGL教程:http://iphonedevelopment.blogspot.com/