UIPopoverController bewegt sich nicht in die ursprüngliche Position zurück, nachdem die Tastatur heruntergefahren wurde

8

Ich zeige auf dem iPad ein Popover mit einer UINavigationsleiste. Auf der zweiten Ansicht habe ich einen UISearchController, der eine Tastatur anzeigen kann. Die Tastatur schiebt den Popover hoch, was gut ist, aber wenn ich jetzt den "Zurück" -Knopf in der UINavigationsleiste drücke, wird die Tastatur zwar entfernt, aber das Popover rutscht nicht zurück in seine ursprüngliche Position. Wer weiß, wie man das repariert? Danke!

    
paranoidroid 21.08.2010, 10:03
quelle

3 Antworten

9

Ok, also habe ich herausgefunden (was ich glaube), was deine Frage war ... und für den Fall, dass jemand von Google darauf stolpert, dachte ich, ich würde antworten, wie ich es gemacht habe. Es fühlt sich an wie ein Hack-Job, aber ich habe keine andere Möglichkeit gefunden, es zu tun.

In dem Controller, der die Tastatur aufruft, habe ich eine Benachrichtigung gepostet, wann immer die Tastatur ablehnt:

%Vor%

Dann auf meinem Home-Bildschirm-Controller, der den UIPopover steuert, fügte ich einen Listener hinzu:

%Vor%

innerhalb der Initialisierung. Denken Sie daran, den Listener in Ihrem Dealloc für eine gute Programmierpraxis zu entfernen:

%Vor%

Wenn ich dann eine Benachrichtigung bekomme, dass die Tastatur verschwindet, erhalte ich einen Hinweis auf die Schaltfläche, aus der das Popover hervorgeht, und lasse sie direkt von dort wieder erscheinen:

%Vor%

}

Ich habe keine Überprüfungen hinzugefügt, um welches Popup es sich handelt, aber ich kann das leicht machen, wenn ich mehr als eine Art von Popover / Button habe, von dem es aussehen würde. Aber das ist die Grundvoraussetzung, von der Sie ausgehen können.

Ich hoffe, es hilft!

    
serenn 15.09.2010, 21:24
quelle
1
___ qstnhdr ___ UIPopoverController bewegt sich nicht in die ursprüngliche Position zurück, nachdem die Tastatur heruntergefahren wurde ___ qstntxt ___

Ich zeige auf dem iPad ein Popover mit einer UINavigationsleiste. Auf der zweiten Ansicht habe ich einen UISearchController, der eine Tastatur anzeigen kann. Die Tastatur schiebt den Popover hoch, was gut ist, aber wenn ich jetzt den "Zurück" -Knopf in der UINavigationsleiste drücke, wird die Tastatur zwar entfernt, aber das Popover rutscht nicht zurück in seine ursprüngliche Position. Wer weiß, wie man das repariert? Danke!

    
___ answer8912665 ​​___

Sie können sich auch für die UIKeyboardDidHideNotification irgendwo im Initialisierer registrieren.

%Vor%

Dieser Code bewegt das Popover zurück:

%Vor%

Ich habe es ohne die Verzögerungen nicht geschafft, aber das scheint für mein aktuelles Projekt akzeptabel zu sein. Hoffe es hilft jemandem.

    
___ answer10010743 ___

Nachdem Sie die Zurück-Taste gedrückt haben, sollten Sie %code% für das Suchfeld manuell aufrufen (zum Beispiel in %code% ).

Dies sollte helfen, aber das Problem wird immer noch unter iOS 4 reproduziert, wenn sich das Gerät in der Querformat-Ausrichtung mit der ome-Taste auf der linken Seite befindet

    
___ tag123ipad ___ iPad ist ein von Apple entwickelter Tablet-Computer, auf dem das iOS-Betriebssystem ausgeführt wird. iPad-Anwendungen werden normalerweise in Objective-C oder Swift in der Xcode-IDE geschrieben, obwohl es auch möglich ist, andere Tools zum Erstellen von iPad-Anwendungen zu verwenden. Fragen, die nicht von der Hardware abhängig sind, sollten stattdessen das iOS-Tag verwenden. ___ tag123uipopovercontroller ___ Die UIPopoverController-Klasse wird verwendet, um die Präsentation von Inhalten in einem Popover zu verwalten. Sie verwenden Popovers, um Informationen vorübergehend darzustellen. Der Popover-Inhalt wird über den vorhandenen Inhalt gelegt und der Hintergrund wird automatisch abgeblendet. Das Popover bleibt sichtbar, bis der Benutzer außerhalb des Popover-Fensters klickt oder Sie es explizit ablehnen. Popover-Controller werden ausschließlich auf iPad-Geräten verwendet. ___ answer3721934 ___

Ok, also habe ich herausgefunden (was ich glaube), was deine Frage war ... und für den Fall, dass jemand von Google darauf stolpert, dachte ich, ich würde antworten, wie ich es gemacht habe. Es fühlt sich an wie ein Hack-Job, aber ich habe keine andere Möglichkeit gefunden, es zu tun.

In dem Controller, der die Tastatur aufruft, habe ich eine Benachrichtigung gepostet, wann immer die Tastatur ablehnt:

%Vor%

Dann auf meinem Home-Bildschirm-Controller, der den UIPopover steuert, fügte ich einen Listener hinzu:

%Vor%

innerhalb der Initialisierung. Denken Sie daran, den Listener in Ihrem Dealloc für eine gute Programmierpraxis zu entfernen:

%Vor%

Wenn ich dann eine Benachrichtigung bekomme, dass die Tastatur verschwindet, erhalte ich einen Hinweis auf die Schaltfläche, aus der das Popover hervorgeht, und lasse sie direkt von dort wieder erscheinen:

%Vor%

}

Ich habe keine Überprüfungen hinzugefügt, um welches Popup es sich handelt, aber ich kann das leicht machen, wenn ich mehr als eine Art von Popover / Button habe, von dem es aussehen würde. Aber das ist die Grundvoraussetzung, von der Sie ausgehen können.

Ich hoffe, es hilft!

    
___
flo von der uni 18.01.2012 15:23
quelle
0

Nachdem Sie die Zurück-Taste gedrückt haben, sollten Sie resignFirstResponder für das Suchfeld manuell aufrufen (zum Beispiel in viewDidDisappear ).

Dies sollte helfen, aber das Problem wird immer noch unter iOS 4 reproduziert, wenn sich das Gerät in der Querformat-Ausrichtung mit der ome-Taste auf der linken Seite befindet

    
Serg 04.04.2012 12:06
quelle

Tags und Links