(touchesBegan not called in a UIView subclass) из этой темы расширение.iOS 9.3 touchsBegan/Завершение не запускается в симуляторе
У меня возникла аналогичная проблема с вышеупомянутой связанной дискуссией, спустя годы, пытаясь обновить рабочий (выпущенный) APP с 2009 года до последней версии iOS 9.3. Мне пришлось добавить UIViewController для предотвращения сбоя и получить APP для загрузки в Simulator (XCODE MAC последней версии, iPhone6). Процедура drawView вызывается повторно, чтобы обновить экран, как ожидалось, и все, что отображается на экране, анимировано, как было разработано. Однако NO CLICKS. touchsBegan/Ended никогда не вызываются. Я могу начать загружать код, но интересно, если что-то сразу приходит в голову, так как кажется, что у всех есть эта проблема или что-то в этом роде, в какой-то момент, и это, как правило, очень простое исправление. Спасибо.
Update: Это может быть дополнительный UIViewController баловаться с UIView, но это дополнение между этими версиями APP, что требуется и больше не автоматически не генерируется.
попытался установить UIView в firstResponder:
- (id)initWithCoder:(NSCoder*)coder {
if ((self = [super initWithCoder:coder])) {
[self setUserInteractionEnabled:YES];
[self setMultipleTouchEnabled:YES];
[self becomeFirstResponder];
Это в UIView в (glView) touch'ers:
- (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;
}
Отсутствие ошибок компиляции или времени выполнения.
- это правильная работа в реальном устройстве? –
К сожалению, самый ранний телефон, который может быть снабжен XCODE, - iPhone4s, а мой iPhone4. Так что это не узнает. Это симулятор или бюст. –