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!
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!
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!
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.
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
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!
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
Tags und Links ipad uipopovercontroller