私はいくつかのUITextField
とUITextView
のスクリーンを持っています。UITextView textViewShouldEndEditing/textViewDidEndEditingが呼び出されない
UITextField
の編集を終了する方法は、キーボードの[完了]キーをタップし、UITextView
の「公式」の方法は外部の完了ボタンに触れることです - 他のコントロールに触れるだけで、ユーザーが別のテキストフィールドまたはテキストビューに切り替えるのを防ぐことはできません。
編集中の現在のコントロールがUITextField
の場合、これは問題なく機能します。ユーザーが第2のコントロールに触れると、現在のテキストフィールドにTextFieldDidEndEditing:
が呼び出され、そのフィールドのデータを処理できます。
ただし、現在のコントロールがUITextView
の場合、ユーザーが別のコントロールに触れると、textViewShouldEndEditing
もtextViewDidEndEditing
も呼び出されません。それらを呼び出させる唯一の方法は、第2のコントロールがタッチされたときに明示的にResignFirstResponder
を実行することですが、これによりキーボードが解除されるため、新しいタッチは実質的に無視されます(ユーザーは新しいフィールドに再度触れてレジュームする必要があります編集)。
UITextView
は、別のコントロールに触れているときにUITextField
のように振る舞いますか?
は私のために働きます。 textViewのデリゲートを設定してもよろしいですか?それはあなたがおそらく持っているresignFirstResponderを手動で使用するときに機能するかどうかです。 –
はい、確かに... :) –