Frage

Ich habe ein Texteingabefeld in meinem iphone app bekam, wenn man es im Simulator berühren, wird die Tastatur erscheint. Aber es gibt keinen Weg, um es loszuwerden. Weitere Webseiten geben Lösungen, ohne zu erklären, warum sie funktionieren sollte, und sie nicht für mich arbeiten. Man sagt, machen das Textfeld des Delegierten Ihre uiview dann rufen ResignFirstResponder auf das Objekt, aber es wird nie genannt. Irgendwelche Vorschläge? Kann jemand erklären, was eigentlich los ist? Ich kann es selbst herausfinden, ob ich wusste, was das Design-Paradigma war ...

Vielleicht sollte ich nur ein „go“ -Taste, so habe ich etwas den Fokus weg von dem Textfeld zu bekommen?

War es hilfreich?

Lösung

Eine Möglichkeit, es zu tun ist, um ein Objekt als Delegierter in das Textfeld zu setzen und implementieren

- (BOOL)textFieldShouldReturn:(UITextField *)textField

, in dem Sie [textField resignFirstResponder] nennen

Dies wird die Tastatur verschwinden lassen, wenn sie die Rückkehr / go / done Taste drücken (was auch immer Sie die untere rechte Tastaturtaste eingestellt sein).

Sehen Sie die UITextFieldDelegate Referenz für weitere Informationen.

Andere Tipps

Tastatur entlassen Sie TextField- Delegate verwenden können.

So verwenden Sie hierzu folgendermaßen vor ...
. 1. Sie Viewcontroller h fügen Sie die Delegatendeklaration wie folgt aus:     

@interface ViewController : UIViewController <UITextFieldDelegate> {
    }
. 2. In Ihrem Viewcontroller m diese Methode aufrufen:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3. Dann schreiben Sie einen Code wie folgt aus:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4. Letzter Schritt ist das Textfeld ein Delegierter zu setzen:     
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

- (BOOL)textFieldShouldReturn:(UITextField *)textField in Ihrem Delegaten wird aufgerufen, wenn die Return-Taste gedrückt wird.

Sie wollen [textField resignFirstResponder] anrufen und dann wieder YES. Das sollte den Trick tun. Vergewissern Sie sich auch die Delegierten festgelegt ist. Im Zweifelsfall, fügen Sie einen Haltepunkt oder NSLog und überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top