1

重複の可能性:
iPhoneでのtextfieldshouldendeditingとtextfieldDidendeditingの違い

textFieldShouldendEditingtextfieldDidEndEditingメソッドの違いは何ですか?いつこれらのメソッドを使用しますか。

4

3 に答える 3

2

ドキュメントから:

textFieldShouldendEditing:

このメソッドは、テキストフィールドがファーストレスポンダーのステータスを辞任するように求められたときに呼び出されます。これは、アプリケーションがテキストフィールドにフォーカスを辞任するように要求した場合、またはユーザーが編集フォーカスを別のコントロールに変更しようとした場合に発生する可能性があります。ただし、フォーカスが実際に変わる前に、テキストフィールドはこのメソッドを呼び出して、デリゲートにそれを行うかどうかを決定する機会を与えます。

textfieldDidEndEditing:

このメソッドは、テキストフィールドが最初のレスポンダーステータスを辞任した後に呼び出されます。このメソッドを使用して、デリゲートの状態情報を更新できます。たとえば、このメソッドを使用して、編集中にのみ表示されるはずのオーバーレイビューを非表示にすることができます。

したがって、メソッドはメソッドのtextFieldShouldendEditing:前に呼び出されますtextfieldDidEndEditing:

于 2012-09-04T12:09:14.700 に答える
1

textFieldShouldendEditingtextFieldが編集モードを終了しようとしているときに呼び出されます。BOOLリターン型です。設定したreturn NO場合、textFieldはresignFirstResponderにならず、編集モードのままになりtextfieldDidEndEditing、呼び出すことはありません。

これは、textfieldDidEndEditingテキストフィールドが編集モードではなく、キーボードがダウンしていることを通知する方法です。

詳細については、plzはUITextFieldDelegateプロトコルを参照してください。 これがお役に立てば幸いです:)

于 2012-09-04T12:07:05.207 に答える
1

textFieldDidEndEditing: テキストフィールドが最初のレスポンダーとして辞任したときに呼び出されます。したがって、ユーザーから入力された値を取得できます。

textFieldShouldendEditing:ユーザーが入力したキーをテキストフィールドに表示するかどうかを確認するために使用されます。したがって、NOを返すと、キーは表示されません。入力する文字数を制限したいラベルを想像してみてください。NO上記を使用して、入力された文字数を確認し、制限に達した場合は、基本的に新しいキーストロークを必要としない値を返します。

詳細については、リファレンスドキュメントを確認してください。

于 2012-09-04T12:07:51.900 に答える