/ / UITextView textViewShouldEndEditing / textViewDidEndEditing nie je volaný - iphone, ios, uitextview

UITextView textViewShouldEndEditing / textViewDidEndEditing nie je volaný - iphone, ios, uitextview

Mám obrazovku s niekoľkými UITextFields a UITextViews.

Aj keď "oficiálna" metóda na ukončenie editácie a UITextField je Dotknite sa klávesu Hotovo na klávesnici a "oficiálnej" metódy pre UITextView je dotknúť sa externého tlačidla Hotovo - a podporujem oboje - nemôžem zabrániť tomu, aby používateľ prepínal na iné textové alebo textové zobrazenie tým, že sa jednoducho dotkne toho iného ovládacieho prvku.

Toto funguje správne, ak je aktuálna editovaná kontrola a UITextField, Keď sa používateľ dotýka druhej kontroly, TextFieldDidEndEditing: sa volá pre aktuálne textové pole a môžem spracovať údaje v danom poli.

Ak je však súčasné ovládanie a UITextView, keď sa používateľ nedotkne ani iného ovládača textViewShouldEndEditing ani textViewDidEndEditing sa volajú. Jediný spôsob, ako ich zavolať, je robiť explicitné ResignFirstResponder keď sa dotkne druhého ovládacieho prvku, ale to spôsobí, že klávesnica bude odmietnutá, takže nový dotyk sa účinne ignoruje (používateľ sa musí znovu dotknúť nového poľa, aby obnovil úpravu).

Existuje spôsob, ako spôsobiť a UITextView správať sa ako UITextField keď sa dotkne inej kontroly?

odpovede:

0 pre odpoveď č. 1

v metódach textViewShouldEndEditing a textViewDidEndEditing vložte klauzulu if-else.

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