/ / UITextView textViewShouldEndEditing / textViewDidEndEditing wird nicht aufgerufen - iphone, ios, uitextview

UITextView textViewShouldEndEditing / textViewDidEndEditing nicht aufgerufen - iphone, ios, uitextview

Ich habe einen Bildschirm mit mehreren UITextFields und UITextViews.

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 UITextViewWenn 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 № 1

Setzen Sie in den Methoden textViewShouldEndEditing und textViewDidEndEditing eine if-else-Klausel.

- (void)textViewDidBeginEditing:(UITextView *)textView
{
if (textView = (your text view property)
{
//do something
}
}