Mon objectif est de dessiner un bouton invisible au-dessus de la barre d'état en haut de mon application iPhone (dimension 320 * 20 pixels).Mettre une UIView ou une UIWindow au-dessus de la barre d'état
Peu importe ce que j'essaie, quelque chose est bogué:
Par exemple, j'ai essayé de créer une nouvelle vue. Quand je veux placer la vue sur le dessus de mon application, elle disparaît toujours derrière la barre d'état au lieu d'être devant elle!
Je trouve une autre grande idée sur Stackoverflow: Add UIView Above All Other Views, Including StatusBar Même si une deuxième UIWindow n'est pas recommandé, j'ai essayé de le mettre en œuvre. Cela a fonctionné comme je le souhaitais jusqu'au moment où j'ai remarqué un problème: le clavier n'apparaît plus en cas de besoin (par exemple en cliquant dans une zone de texte)!
Comment puis-je résoudre ce problème? Ou y a-t-il une meilleure approche à mon problème? Ceci est mon code pour créer la deuxième fenêtre:
// Create window
statusWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0,0,320,20)];
statusWindow.windowLevel = UIWindowLevelStatusBar;
[statusWindow makeKeyAndVisible];
// Create statusBarButton
statusBarButton = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect buttonFrame2 = statusBarButton.frame;
buttonFrame2.size = CGSizeMake(320,20);
statusBarButton.frame = buttonFrame2;
[statusBarButton addTarget:self action:@selector(goTop) forControlEvents:UIControlEventTouchUpInside];
// Place button into the new window
[statusWindow addSubview:statusBarButton];
Bonjour, c'est génial! D'abord je ne croyais pas que ça pouvait marcher, mais ça l'a vraiment fait! Merci beaucoup de m'avoir fait gagner du temps et de la frustration! :-) – andreas
Quelle méthode avez-vous utilisé? –
Voir mon dernier message: J'ai dû supprimer la commande "statusWindow makeKeyAndVisible" et utiliser "statusWindow.hidden = NO" à la place. À la fin de tout le code j'ai ajouté "window makeKeyAndVisible" donc l'application sait qu'elle doit montrer le clavier là. Ça a marché! J'espère que Apple acceptera cette solution. – andreas