我有一个使用 GLKView 的应用程序,没有其他 UI 元素。我没有使用 GLKViewController,也不打算使用。
我所有的应用程序设置都发生在 didFinishLaunchingWithOptions
我的 AppDelegate 接口定义为:
@interface AppDelegate : UIResponder <UIApplicationDelegate, GLKViewDelegate, UIGestureRecognizerDelegate>
作为此设置的一部分,我正在尝试设置 GestureRecognizer(Tap、Pinch 等) - 但是它们似乎没有触发。
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 方法(和朋友),并且这些选择器会按预期触发。
知道我做错了什么,或者是否有解决方法?