2016-12-12 3 views
0

J'ai une deuxième fenêtre, je crée pour afficher une notification personnalisée dans mon application:Deuxième UIWindow ne reçoit pas les événements tactiles

@property (strong, nonatomic) UIWindow *window2; 

Et voilà comment je fais apparaître:

self.window2 = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, SCREEN_BOUNDS.size.width, 50)]; 
self.window2.backgroundColor = [UIColor blackColor]; 
self.window2.windowLevel = UIWindowLevelAlert; 
self.window2.rootViewController = custonViewController; 
[self.window2 makeKeyAndVisible]; 

Le Le problème est qu'aucun événement tactile à l'intérieur de custonViewController ne fonctionne. J'ai tout essayé, même sous-classe UIWindow et remplacer le (void)sendEvent:(UIEvent *)event. Mais ça ne marche pas non plus.

Comment puis-je faire en sorte que mon appdeledate sache que la fenêtre 2 a été touchée/tapée? Des idées?

+0

Vous faites en sorte que la taille de la fenêtre soit petite et hors de l'écran. Pourquoi pensez-vous que les touches fonctionnent? – rmaddy

+0

Non, je ne le fais pas. IL APPARAÎT DANS L'ÉCRAN, je viens de taper -50 par erreur .. Je viens de le corriger .. –

+1

S'il vous plaît arrêter de crier. Vous avez toujours un problème: la hauteur de votre fenêtre est seulement de 50 points. Est-ce vraiment tout ce que tu veux? Cela couvre à peine la barre d'état. – rmaddy

Répondre

0

Nevermind. J'ai découvert ce qui est arrivé. J'animais l'UIWindow pour apparaître et disparaître automatiquement, dans une séquence d'animations après l'achèvement de la précédente avec un délai de quelques secondes. Il a verrouillé tous les événements tactiles pendant toute la séquence d'animations. J'ai donc séparé les animations et les ai placées dans des threads asynchrones, de manière à ce qu'elles soient normalement touchées. salut!