2012-09-11 7 views
5

Ich habe eine Navigationsleiste, die beim Scrollen am oberen Rand des Fensters fixiert ist. Wenn ich jedoch auf einen Eingang klicke und die Tastatur auftaucht, bewegt sich das Navigationsgerät und bleibt in der falschen Position stecken. Irgendeine Möglichkeit, das zu beheben?Tastatur auf ios bewegt meine feste Position header nav

Auch kann ich nicht die Tastatur schließen, indem ich außerhalb davon klicke.

+0

Ist es eine Navigationsleiste im Interface Builder oder eine benutzerdefinierte Ansicht? Es gibt keine Möglichkeit, es zu verschieben, wenn es die Standardnavigationsleiste ist – jere

+0

Sie müssen Code haben, der ausgeführt wird, wenn die Tastatur angezeigt wird. Bitte schreiben Sie das, wenn Sie möchten, dass wir helfen. Veröffentlichen Sie auch jeden Code, der ausgeführt wird, wenn die Tastatur ausgeblendet ist. Und schließlich soll sich die Tastatur nicht schließen, wenn man außerhalb davon klopft. – lnafziger

+0

http://stackoverflow.com/questions/7970389/ios-5-fixed-positioning-and-virtual-keyboard und http://stackoverflow.com/questions/12550298/mobile-safari -ios-6-0-fixed-positioning-while-tastatur-showing kann hilfreich sein – sjobe

Antwort

0

Ich bin mir nicht sicher, warum Ihre Navigationsleiste sich bewegen würde. Wenn Sie ein UINavigationController unterklassifizieren oder verwenden, wird die Navigationsleiste selbst standardmäßig zur Verfügung gestellt, Sie können sie jedoch immer ausblenden. Wenn Sie nicht wollen und wollen nur eine UINavgivationBar und nicht den Stapel von View-Controllern, die Sie mit dem Controller erhalten, als es möglich ist, den Rahmen zu verschieben. Ich schlage vor, stattdessen einen Nav-Controller zu verwenden, um sicherzustellen, dass sich Ihre Bar niemals bewegt.

Um die Tastatur nicht zu verbergen, wenn Sie aus klicken. Es gibt keine "automatische" Möglichkeit, dies zu tun. Sie müssen explizit die Methode resignFirstResponder für eine gespeicherte Referenz auf das Textfeld, auf das Sie geklickt haben, um die Tastatur erscheinen zu lassen, aufrufen. Der beste Weg, dies zu tun, ist eine NSMutableArray-Eigenschaft zu erstellen und implementieren Sie die UITextfieldDelegate in Ihrem View-Controller .h und setzen Sie die Methode - (void) textfiedDidBeginEditing: (UITextfield *) Textfeld Ich bin Ihre .m und fügen Sie die TextFormate zu den veränderbaren Array drinnen. Von dort müssen Sie entscheiden, wie der Benutzer die Tastatur IE verlassen wird, klickte den Hintergrund. Der einfachste Weg besteht also darin, einen riesigen UIButton ohne Text zum Hintergrund hinzuzufügen, der eine Methode aufruft, die das muablearray durchläuft und den resignFirstResponder für alles aufruft und das Array löscht, wenn es fertig ist.

oder Sie können immer den Tastaturtyp des Textfelds so ändern, dass es eine Taste done hat.

Sie haben die Wahl!