Ich habe einen Bildschirm mit mehreren UITextField
s und UITextView
s.
Obwohl die "offizielle" Methode das Editieren von a beendet UITextField
Berühren Sie die Schaltfläche Fertig auf der Tastatur und die "offizielle" Methode für eine UITextView
Berühren einer externen Done-Schaltfläche - und ich unterstütze beide - ich kann den Benutzer nicht daran hindern, zu einem anderen Textfeld oder einer anderen Textansicht zu wechseln, indem Sie einfach dieses andere Steuerelement berühren.
Dies funktioniert gut, wenn das aktuell bearbeitete Steuerelement a ist UITextField
. Wenn der Benutzer das zweite Steuerelement berührt, TextFieldDidEndEditing:
wird für das aktuelle Textfeld aufgerufen, und ich kann mit den Daten in diesem Feld umgehen.
Wenn jedoch die Stromsteuerung a ist UITextView
Wenn der Benutzer ein anderes Steuerelement nicht berührt textViewShouldEndEditing
Noch textViewDidEndEditing
werden genannt. Sie können nur aufgerufen werden, indem Sie explizit vorgehen ResignFirstResponder
Wenn das zweite Steuerelement berührt wird, wird die Tastatur jedoch verworfen, sodass die neue Berührung effektiv ignoriert wird (der Benutzer muss das neue Feld erneut berühren, um die Bearbeitung fortzusetzen).
Gibt es eine Möglichkeit, a UITextView
benehmen wie ein UITextField
wenn ein anderes Steuerelement berührt wird?
Antworten:
0 für die Antwort № 1Setzen Sie in den Methoden textViewShouldEndEditing und textViewDidEndEditing eine if-else-Klausel.
- (void)textViewDidBeginEditing:(UITextView *)textView
{
if (textView = (your text view property)
{
//do something
}
}