我已将NSOpenGLView
添加到我的MainMenu.xib
文件中,并已实施drawRect
以便绘制它,这非常有用,到目前为止一切顺利。
如何检测屏幕上的触摸?我想我可以在Interface Builder中的NSOpenGLView
区域上转储一些透明按钮或其他东西吗?
应用程序很简单,我只需知道触摸了哪个网格区域。
答案 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/