2010-08-26 23 views
120

Durch Klicken in ein Textfeld wird die Tastatur angezeigt. Wie verstecke ich es, wenn der Benutzer die Return-Taste drückt?Wie blende ich die Tastatur aus, wenn ich die Return-Taste in einem UITextField drücke?

+12

Das schöne an Stack-Überlauf ist, dass haben viele Fragen schon, besonders einfach diejenigen beantwortet. Daher bitte zuerst nach Antworten suchen, bevor Sie fragen. Sehen Sie, es ist ganz einfach: http://stackoverflow.com/search?q=iphone+hide+keyboard – Felixyz

+0

Dies ist eine Unterklasse von UITextField, das dynamisch die UIReturnKey ändern nach Text/string Bedingung: https://github.com/ codeinteractiveapps/OBReturnKeyTextField – CodeInteractive

Antwort

246

Erste Dateien Delegat für UITextField machen und dann diese Methode, um Ihren Code hinzufügen ..

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    [textField resignFirstResponder]; 
    return YES; 
} 
+1

Neugierig, warum ist nicht notwendig? Normalerweise wird in diesem Fall eine Warnung angezeigt. – pixelfreak

+7

, wenn Sie Ihre Datei Delegat mit Interface Builder dann machen ist nicht notwendig, in .h-Datei .. – Saurabh

+1

Hinzufügen in .h-Datei und legen Sie Delegat in viewDidLoad [yourTextField setDelegate: self]; wird es vervollständigen! – Umitk

1

Satz Delegierter UITextField und über Fahrt, textFieldShouldReturn Methode, in diesem Verfahren nur folgende zwei Zeilen schreiben:

[textField resignFirstResponder]; 
return YES; 

, die es ist. Bevor Sie einen Code schreiben, vergessen Sie nicht, den Delegaten eines UITextField zu setzen und den Return-Schlüsseltyp im Eigenschaftsfenster auf "Done" zu setzen (Befehl + Shift + I).

57

In viewDidLoad declare:

[yourTextField setDelegate:self];

Dann schließen die Überschreibung der Methode delegieren :

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

+1 für die 'setDelegate:' Erinnerung. Definitiv hatte vergessen und Code funktionierte vorher nicht. – piperchester

+2

Sollte dies nicht TextField- statt yourTextField sein, wie es in übergeben wird? –

+0

ist eine Art zu sagen, dass die Delegierten des Textfield –

1

Versuchen Sie es

,
[textField setDelegate: self]; 

Dann in Textfield Delegatmethode

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

das ist nicht die beste Praxis, das zu tun. – orafaelreis

+0

benötigt UITextFieldDelegate in der Schnittstellendefinition. –

+0

@AlpAltunel: Danke für den Kommentar, es war 4 Jahre zurück. –

11

In swift tun wie folgt aus:
Zuerst in Ihrem ViewController implementieren diese UITextFieldDelegate Für zB.

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

Nun fügen Sie einen Delegierten zu einem TextField, in dem Sie die Tastatur entlassen wollen, wenn Rückkehr abgegriffen wird entweder in viewDidLoad Verfahren wie unten oder wo Sie es initialisiert wird. Für z.

override func viewDidLoad() { 

    super.viewDidLoad() 
    myTextField.delegate = self 
} 

Fügen Sie nun diese Methode hinzu.

func textFieldShouldReturn(textField: UITextField) -> Bool { 

    textField.resignFirstResponder() 
    return true 
} 
+1

Zweiter Schritt nicht erforderlich, wenn Sie Delegat in IB festlegen. –

8

Versuchen Sie dies in Swift,

Schritt 1: Set Delegat als Selbst Ihre textField

textField.delegate = self 

Schritt 2: dieses UITextFieldDelegate hinzufügen unterhalb der Klassendeklaration,

extension YourClassName: UITextFieldDelegate { 
    func textFieldShouldReturn(textField: UITextField) -> Bool { 
     textField.resignFirstResponder() 
     return true 
    } 
} 
0
[textField resignFirstResponder]; 

verwenden

1

Sie können "Primär Action-Triggered" verbinden (rechts auf UITextField klicken) mit einem IBAction und Sie können Ersthelfer (ohne Delegation) zurücktreten.Beispiel (Swift 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) { 
    sender.resignFirstResponder() 
    ... 
} 
+0

Bevorzugter Weg, wenn Storyboards verwendet werden. – lal

Verwandte Themen