UITextView Autoscroll und resignFirstResponder

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UITextView Autoscroll und resignFirstResponder

    Hallo OSX Entwickler,

    ich habe in meiner App ein UITextView.
    Wenn man das nun bearbeiten will, erscheint die Tastatur und überdeckt die Hälfte des UITextView.
    Wenn man etwas mehr schreibt, verschwindet der Cursor hinter der Tastatur.
    Wie kann ich nun sagen, dass wenn man etwas eingibt, das UITextView automatisch an diese Stelle scrollen soll?

    Wenn man auf die Return Taste tippt, beginnt eine neue Zeile und das UITextView verliert nicht den FirstResponder.
    So will ich den FirstResponder entziehen, wenn man auf den Hintergrund des View (nicht des UITextView) tippt.
    Wie kann ich das machen?
  • UITextView erbt ja von UIScrollView... Guck mal in der Docu dazu, ob du was findest, mit dem du dann zu einer Position scrollen kannst. Dies erfährst du dann über die Delegate-Methode "- (void)textViewDidBeginEditing:(UITextView *)textView"
    Gruß

    Robin
  • Danke,
    wie kann ich die letzte Änderung am UITextView ermitteln und in eine NSRange stecken?
    Ich nutze jetzt die textViewDidChange Methode, um zur letzten Änderung zu scrollen.

    Hat jemand eine Idee, wie man das mit dem FirstResponder machen kann?
    Kann man nicht irgendeinen TapRecognizer nehmen, der auf einen einfachen Tipp reagiert und in den Hintergrund packen?
  • @TeamNoX
    Dein Text würde funktionieren, wenn man immer nur Text am Ende dazuschreibt.
    Wenn man aber Text in der Mitte hinzufügt, scrollt es trotzdem nach ganz unten.
    Ich möchte aber die letzte Änderung ermitteln.
  • Warum machst du das Textview nicht einfach während des Editierens kürzer so das es von der Tastatur nicht mehr überdeckt wird ? In dem Bereich da unten kann sich doch sowieso nichts abspielen während die Tastatur da ist...

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Quellcode

    1. -(void)textViewdidBeginEditing:(UITextView*)TextView
    2. {
    3. // Hier Textfeld kürzen bzw. in die richtige Pos. bringen !
    4. }
    5. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    6. {
    7. [self.mText resignFirstResponder];
    8. // Hier Textfeld wieder auf Originalgrösse setzen !
    9. }
    Alles anzeigen
  • Gibt es nicht eine Methode KeyboardWillAppear, weil bei didBeginEditing wird das UITextView erst verkleinert und dann fährt die Tastatur aus.
    Anders herum wäre es besser: erst die Tastatur, dann die Verkleinerung, damit der Benutzer davon nichts merkt.