2010-01-05 166 views
2

我已經爲我的MainMenu.xib文件添加了一個NSOpenGLView,並且已經實現了drawRect來繪製它,這很好,迄今爲止非常好。在NSOpenGLView上檢測觸摸

如何檢測屏幕上的觸摸?我想我可以在Interface Builder的NSOpenGLView區域轉儲一些透明按鈕或其他東西。

該應用程序很簡單,我只需要知道網格的哪個區域已被觸摸。

回答

1

無需添加透明按鈕或覆蓋。

我假設這是爲手機,因爲你提到可可觸摸,但我不知道手機的NSOpenGLView。你需要在你的子類覆蓋+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/

+0

NSOpenGLView只存在於Mac上。提問者誤以爲他的問題;我刪除了可可觸摸標籤。 – 2010-01-07 07:09:29