(touchesBegan not called in a UIView subclass)来自此主题的扩展名。
我在上述链接讨论中遇到了类似的问题,多年后,尝试将工作(已发布)的APP从2009升级到最新的iOS 9.3。我不得不添加一个UIViewController以防止崩溃,并在模拟器(XCODE MAC latest,iPhone6)中加载APP。正在重复调用drawView例程以按预期刷新屏幕,并且屏幕上的内容按设计动画。但没有点击。 touchesBegan / Ended永远不会被召唤。我可以开始加载代码,但想知道是否有任何直接的想法,因为似乎每个人都有这个问题,或类似的东西,在某些时候,它通常是一个非常简单的修复。谢谢。
更新:这可能是额外的uiViewController弄乱了uiView,但这是需要这些APP版本之间的补充,不再自动生成。
尝试将uiView设置为firstResponder:
- (id)initWithCoder:(NSCoder*)coder {
if ((self = [super initWithCoder:coder])) {
[self setUserInteractionEnabled:YES];
[self setMultipleTouchEnabled:YES];
[self becomeFirstResponder];
这些是uiView的(glView)触摸屏:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { }
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { }
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
int page; [self adjustPage:&page with:0];
... }
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
int page; [self adjustPage:&page with:0];
... }
这是我的观点@interface EAGLView : UIView <UIAccelerometerDelegate> {
。并将此viewController添加到委托中,以使其在加载时不会崩溃。
@implementation OpenGLESAppDelegate
@synthesize window;
@synthesize glView;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIViewController* vc = [[UIViewController alloc]initWithNibName:nil bundle:nil];
self.window.rootViewController = vc;
glView.animationInterval = AHZ;
[glView startAnimation];
return YES;
}
没有编译或运行时错误。
答案 0 :(得分:0)
我有点击!!! 忘了将旧视图分配给新的viewController:vc.view = glView;
现在,我需要找出代码签名和配置来获取它旧电话,但这是另一个故事。