Dies ist wahrscheinlich eine einfache Sache zu tun, aber ich kann es einfach nicht herausfinden - wie beende ich die Bearbeitung in der Textansicht? Wie kann ich die Tastatur verschwinden lassen? oder muss ich außerhalb klicken, damit es weggeht?iPhone - Problem mit UITextView
Antwort
Erstens, eine (um ehrlich zu sein) ziemlich einfache Frage wie diese lässt mich fragen, ob Sie versucht haben, die Dokumentation zu lesen oder im Internet zu suchen.
Suche nach "Apple-Dokumentation UITextView" gibt Ihnen this link in der Klassendokumentation. Ebenso ist here is die Dokumentation für das UITextViewDelegate.
Suche nach "UITextView einfaches Beispiel" gibt Ihnen diese useful example.
Suche nach "UITextView entlassen Tastatur" scheint der erste Treffer answer your question exactly. (Obwohl er die Tastatur bei einer Return-Taste ablehnt, was möglicherweise nicht das ist, was Sie wollen.) (Edit - es scheint, von Ihrem zweiten Kommentar ist es genau das, was Sie wollen.)
P.S. Die Leute oben sind korrekt, wenn auch etwas knapp (verständlicherweise). Sie müssen ein UITextViewDelegate implementieren. Wenn Sie in diesem Delegat die Tastatur auf einem Return-Schlüssel verbergen möchten, implementieren Sie shouldChangeTextInRange, suchen Sie nach einem @ "\ n" und treten Sie den ersten Responder zurück, wenn Sie ihn erhalten. Alternativ fügen Sie Ihrer Benutzeroberfläche eine Schaltfläche "Bearbeitung fertig" hinzu, und geben Sie die erste Antwort zurück, wenn der Benutzer sie drückt.
Sehr einfach:
[myTextField resignFirstResponder];
den Trick.
Textview zu nennen, Textfeld nicht – Unreality
[yourTextField resignFirstResponder];
wird die Tastatur verschwinden und Bearbeitung beenden.
Textview, nicht textfield – Unreality
Eine Möglichkeit, die Bearbeitung zu beenden, außerhalb der Textansicht zu tippen, ist nicht ganz trivial. Auswählen andere Textansichten oder Textfelder oder eine Navigationssteuerung zu aktivieren auslösen ...
- (void)textViewDidEndEditing:(UITextView *)textView
... aus welchem Objekt Sie als Delegierter des Textview bezeichnet haben. Sie können dies selbst auslösen, indem Sie ... anrufen
- (BOOL)endEditing:(BOOL)force
... in der Ansicht, die Ihr Textfeld enthält.
Angenommen, ich habe eine UITextView innerhalb einer UITableViewCell (in einem UITable). Ich möchte die Bearbeitung aktivieren, indem Sie auf die Tabelle tippen. Ich kann dies tun:
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTable)];
[[self tableView] addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
- (void)didTapTable
{
[[self tableView] endEditing:YES];
}
Nun, wenn ich meinen Tisch klopfen, ich Bearbeitung beenden. Und, wie andere gesagt haben, in textViewDidEndEditing
sollte ich sicher sein, [textView resignFirstResponder];
Ich denke, dass EndeEditing ResistFirstResponder auf dem TextView aufrufen wird. Das Schöne an endEditing ist, dass Sie nicht wissen müssen, welches textView gerade bearbeitet wird. endEditing wird es für Sie finden und die Tastatur schließen. Aus den Dokumenten. "Diese Methode betrachtet die aktuelle Ansicht und ihre Unteransichtshierarchie für das Textfeld, das derzeit der Erstbeantworter ist.Wenn es einen findet, fordert es dieses Textfeld auf, als Ersthelfer zurückzutreten. Wenn der force-Parameter auf YES gesetzt ist, wird das Textfeld niemals einmal abgefragt; es ist gezwungen, zurückzutreten. " – JScarry
yep, google.com -> http://iphonedevelopertips.com/cocoa/how-to- entlassen-die-Tastatur-wenn-ein-uitextview.html – oberbaum
SO ist voll von "ziemlich einfache Frage [s]" und Gott sei Dank dafür! –