383 Stimmen

Einfacher Weg, die Tastatur zu verwerfen?

Ich habe eine ganze Reihe von Steuerelementen, die über viele Tabellenzellen in meiner Tabelle verstreut sind, und ich frage mich, ob es einen einfacheren Weg gibt, die Tastatur zu deaktivieren, ohne alle meine Steuerelemente in einer Schleife durchlaufen zu müssen und sie alle als erste Antwort zurücktreten zu lassen. Ich schätze, die Frage ist: Wie würde ich den aktuellen ersten Responder auf die Tastatur bekommen?

0voto

Shanmugaraja G Punkte 2750

Ja, endEditing ist die beste Option. Und ab iOW 7.0, UIScrollView verfügt über eine coole Funktion, um die Tastatur bei der Interaktion mit der Bildlaufansicht zu deaktivieren. Um dies zu erreichen, können Sie keyboardDismissMode Eigenschaft von UIScrollView .

Legen Sie den Modus für das Verlassen der Tastatur wie folgt fest:

tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag

Es gibt nur wenige andere Arten. Schauen Sie sich dies an Apple-Dokument .

0voto

YannSteph Punkte 10104

In Windeseile :

self.view.endEditing(true)

0voto

cannyboy Punkte 23758

Es ist nicht schön, aber die Art und Weise, wie ich den firstResponder zurücktrete, wenn ich nicht weiß, was der Responder ist:

Erstellen Sie ein UITextField, entweder in IB oder programmatisch. Machen Sie es versteckt. Verknüpfen Sie es mit Ihrem Code, wenn Sie es in IB erstellt haben. Wenn Sie dann die Tastatur ausblenden wollen, schalten Sie den Responder auf das unsichtbare Textfeld um, und legen es sofort wieder ab:

  [self.invisibleField becomeFirstResponder];
  [self.invisibleField resignFirstResponder];

0voto

Vaibhav Shiledar Punkte 903

Sie müssen eine dieser Methoden anwenden,

[self.view endEditing:YES];

o

[self.textField resignFirstResponder];

0voto

tryKuldeepTanwar Punkte 3340

Update

Ich habe einen anderen einfachen Weg gefunden

einfach eine Eigenschaft deklarieren :-

@property( strong , nonatomic) UITextfield *currentTextfield;

und einen Gestenerkenner für Tippgesten:-

@property (strong , nonatomic) UITapGestureRecognizer *resignTextField;

In ViewDidLoad

_currentTextfield=[[UITextField alloc]init];
_resignTextField=[[UITapGestureRecognizer alloc]initWithTarget:@selector(tapMethod:)];

[self.view addGestureRecognizer:_resignTextField];

Implementierung der Textfeld-Delegiertenmethode didBeginEditing

 -(void)textFieldDidBeginEditing:(UITextField *)textField{

      _currentTextfield=textField;

    }

Implementieren Sie Ihre Tipp-Gesten-Methode (_resignTextField)

 -(void)tapMethod:(UITapGestureRecognizer *)Gesture{

     [_currentTextfield resignFirstResponder];

 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X