Mám obrazovku s niekoľkými UITextField
s a UITextView
s.
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ď č. 1v metódach textViewShouldEndEditing a textViewDidEndEditing vložte klauzulu if-else.
- (void)textViewDidBeginEditing:(UITextView *)textView
{
if (textView = (your text view property)
{
//do something
}
}