it-swarm.com.de

Wie kann ich die Tastatur ausblenden, wenn ich in einem UITextField die Eingabetaste drücke?

Wenn Sie in ein Textfeld klicken, wird die Tastatur angezeigt .. Wie kann ich sie ausblenden, wenn der Benutzer die Eingabetaste drückt?

133
aden

Legen Sie zunächst Ihre Datei für UITextField ab

@interface MYLoginViewController () <UITextFieldDelegate>

@end

Fügen Sie diese Methode dann Ihrem Code hinzu. 

- (BOOL)textFieldShouldReturn:(UITextField *)textField {        
    [textField resignFirstResponder];
    return YES;
}

Fügen Sie auch self.textField.delegate = self; hinzu

264
Saurabh

In viewDidLoad deklarieren Sie: 

[yourTextField setDelegate:self];

Fügen Sie dann die Überschreibung der Delegatmethode hinzu:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}
59
oscar castellon

In Swift gefällt Folgendes:
Zuerst in Ihrer ViewController implementieren Sie diese UITextFieldDelegate

class MyViewController: UIViewController, UITextFieldDelegate {
....
}

Fügen Sie nun einen Delegaten zu einer TextField hinzu, in der Sie die Tastatur schließen möchten, wenn Sie in der viewDidLoad -Methode wie unten auf return drücken, oder wo Sie sie initialisieren.

override func viewDidLoad() {

    super.viewDidLoad()   
    myTextField.delegate = self
}

Fügen Sie nun diese Methode hinzu.

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textField.resignFirstResponder()
    return true
}
12
Homam

Versuchen Sie dies in Swift ,

Schritt 1: Setze den Delegierten als deine textField

textField.delegate = self

Schritt 2: Füge dieses UITextFieldDelegate unter deiner Klassendeklaration ein,

extension YourClassName: UITextFieldDelegate {
    func textFieldShouldReturn(textField: UITextField) -> Bool {
         textField.resignFirstResponder()
        return true
    }
}
11
Zaid Pathan

Schnell 4

Setzen Sie den Delegaten von UITextField in View Controller, field.delegate = self und dann:

extension ViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        // don't force `endEditing` if you want to be asked for resigning
        // also return real flow value, not strict, like: true / false
        return textField.endEditing(false)
    }
}
1
dimpiax

Sie können "Primary Action Triggered" (Rechtsklick auf UITextField) mit einer IBAction verbinden und den First Responder (ohne Delegierung) zurücktreten. Beispiel (Swift 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) {
    sender.resignFirstResponder()
    ...
}
1
Ferenc Kiss

setzen Sie einen Delegaten der Variable UITextField und die Methode textFieldShouldReturn over ride, in diese Methode schreiben Sie einfach die folgenden zwei Zeilen:

[textField resignFirstResponder];
return YES;

das ist es. Bevor Sie einen Code schreiben, vergessen Sie nicht, den Delegaten einer UITextField zu setzen, und setzen Sie den Return-Schlüsseltyp im Eigenschaftsfenster auf "Fertig" (Befehl + Umschalttaste + I).

1
Matrix

Versuche dies,

[textField setDelegate: self];

Dann in der textField-Delegatmethode

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}
1
Vineesh TP

Ok, ich denke, für einen Anfänger kann es etwas verwirrend sein. Ich denke, die richtige Antwort ist eine Mischung aus all dem, zumindest in Swift4. 

Erstellen Sie entweder eine Erweiterung oder verwenden Sie den ViewController, in dem Sie diese verwenden möchten. Stellen Sie jedoch sicher, dass Sie UITextFieldDelegate implementieren. Aus Gründen der Wiederverwendbarkeit fiel es mir leichter, eine Erweiterung zu verwenden: 

extension UIViewController : UITextFieldDelegate {
    ...
}

aber die alternative funktioniert auch:

class MyViewController: UIViewController {
    ...
}

Fügen Sie die Methode textFieldShouldReturn hinzu (abhängig von Ihrer vorherigen Option entweder in der Erweiterung oder in Ihrem ViewController)

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    return textField.endEditing(false)
}

Setzen Sie in Ihrer viewDidLoad-Methode den Delegaten des Textfelds auf self

@IBOutlet weak var myTextField: UITextField!
...

override func viewDidLoad() {
    ..
    myTextField.delegte = self;
    ..
}

Das sollte alles sein. Wenn Sie jetzt return drücken, sollte die textFieldShouldReturn aufgerufen werden.

0
Alex
[textField resignFirstResponder];

Benutze das 

0

Definieren Sie diese Klasse und stellen Sie dann Ihr Textfeld so ein, dass die Klasse verwendet wird. Dadurch wird die gesamte verborgene Tastatur automatisiert, wenn die Eingabetaste automatisch gedrückt wird.

class TextFieldWithReturn: UITextField, UITextFieldDelegate
{

    required init?(coder aDecoder: NSCoder) 
    {
        super.init(coder: aDecoder)
        self.delegate = self
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool
    {
        textField.resignFirstResponder()
        return true
    }

}

Dann müssen Sie im Storyboard nur noch die Felder festlegen, in denen die Klasse verwendet werden soll:

enter image description here

0
iphaaw