Ein UIView oder UIWindow über die Statusleiste setzen

7

Mein Ziel ist es, eine unsichtbare Schaltfläche oberhalb der Statusleiste oben auf meiner iPhone App zu zeichnen (Dimension 320 * 20 Pixel).

Egal, was ich versuche, etwas ist fehlerhaft:

  1. Ich habe beispielsweise versucht, eine neue Ansicht zu erstellen. Wenn ich die Ansicht oben auf meiner App platzieren möchte, verschwindet sie immer hinter der Statusleiste, anstatt davor zu sein!

  2. Ich habe eine weitere großartige Idee auf Stackoverflow gefunden: Fügen Sie UIView über alle anderen Ansichten hinzu, einschließlich StatusBar Auch wenn ein zweites UIWindow nicht empfohlen wird, habe ich versucht es zu implementieren. Es funktionierte so, wie ich es wollte, bis zu dem Moment, als ich ein Problem bemerkte: Die Tastatur erscheint nicht mehr bei Bedarf (zum Beispiel beim Klicken in eine Textbox)!

Wie kann ich das beheben? Oder gibt es einen besseren Ansatz für mein Problem? Dies ist mein Code zum Erstellen des zweiten Fensters:

%Vor%     
andreas 23.11.2010, 01:59
quelle

4 Antworten

8

In der Dokumentation für - [UIWindow makeKeyAndVisible]:

  

Dies ist eine bequeme Methode, um den Empfänger zum Hauptfenster zu machen und vor anderen Fenstern anzuzeigen. Sie können ein Fenster auch mithilfe der vererbten versteckten Eigenschaft von UIView ausblenden und anzeigen.

Das "Schlüsselfenster" ist dasjenige, das bestimmte Eingabeereignisse erhält; Textfelder in einem Nicht-Schlüssel-Fenster funktionieren möglicherweise nicht. Es gibt zwei Dinge, die Sie tun können:

  • Rufen Sie [Fenster makeKeyAndVisible] im alten Schlüsselfenster danach
  • auf
  • Setzen Sie stattdessen statusWindow.hidden = NO (aber ich sehe nicht, warum es standardmäßig ausgeblendet wäre). Ich glaube nicht, dass man es "vor anderen Fenstern anzeigen kann", wie zum Beispiel -akeKeyAndVisible; Fenster haben keine Superview, die Sie aufrufen können - bringSubviewToFront: auf IIRC.
tc. 23.11.2010, 04:29
quelle
8

in der AppDelegate-Datei

%Vor%

oder in einer anderen Klasse

%Vor%

und wenn Sie möchten, dass die Statusleiste wieder oben angezeigt wird, können Sie

festlegen %Vor%     
Mihriban Minaz 05.06.2014 13:59
quelle
7

Wenn andere Benutzer dies implementieren möchten, hier meine Lösung:

%Vor%     
andreas 23.11.2010 23:30
quelle
0

Versuchen Sie:

%Vor%

Ich denke jedoch nicht, dass es möglich ist, eine Sicht vor die Statusleiste zu bringen.

    
WrightsCS 23.11.2010 02:24
quelle