GLKView を使用するアプリケーションがあり、他の UI 要素はありません。私は GLKViewController を使用しておらず、使用する予定もありません。
アプリケーションの設定はすべて didFinishLaunchingWithOptions で行われます
私の AppDelegate インターフェイスは次のように定義されています。
@interface AppDelegate : UIResponder <UIApplicationDelegate, GLKViewDelegate, UIGestureRecognizerDelegate>
このセットアップの一環として、GestureRecognizer (タップ、ピンチなど) をセットアップしようとしていますが、起動していないようです。
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
tapGesture.delegate = self;
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
tapGesture.cancelsTouchesInView = NO;
[view addGestureRecognizer:tapGesture];
tapGesture.delegate = self;
私のセレクターは次のように定義されています。
#pragma mark - GLKViewDelegate
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer
{
// Code to respond to gesture here
NSLog (@"tapGestureUpdated()");
}
私が見つけることができるすべてのサンプル コードから、ジェスチャ認識機能は通常、viewDidLoad メソッド内でセットアップされます。ただし、GLKView はこのメソッドを提供していないようです。提供しようとしても呼び出されません。
おそらく、これは GLKViewController が提供するものですが、前述のように、GLKViewController は使用していません。
touchesBegan メソッド (およびその仲間) をオーバーライドできることに注意してください。これらのセレクターは期待どおりに起動されます。
私が間違っていること、または回避策があるかどうか、何か考えはありますか?