Mettre une UIView ou UIWindow au-dessus de la Barre d'état

Mon but est de dessiner un bouton invisible au-dessus de la barre d'état en haut de mon iPhone (dimension 320*20 pixels).

Peu importe ce que je tente, quelque chose est buggé:

  1. Par exemple, j'ai essayé de créer un nouveau point de vue. Quand je veux placer le point de vue sur le haut de mon application, il disparaît toujours derrière la barre d'état au lieu d'être en face d'elle!
  2. J'ai trouvé une autre bonne idée sur Stackoverflow:
    Ajouter UIView Au-Dessus De Tous Les Autres Points De Vue, Y Compris La Barre D'État
    Même si une deuxième UIWindow n'est pas recommandé, j'ai essayé de la mettre en œuvre. Cela a fonctionné comme je le voulais, jusqu'au moment que j'ai remarqué un problème: le clavier n'apparaît plus lorsque c'est nécessaire (par exemple, lorsque vous cliquez dans une zone de texte)!

Comment puis-je résoudre ce problème? Ou est-il une meilleure approche de mon problème? C'est mon code pour la création de 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];

OriginalL'auteur andreas | 2010-11-23