textFieldShouldendEditingとtextfieldDidEndEditingの違いは何ですか?また、各メソッドをいつ使用する必要がありますか?
2 に答える
textFieldShouldEndEditing:
指定されたテキストフィールドで編集を停止するかどうかを代理人に尋ねます。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
ディスカッションこのメソッドは、テキストフィールドがファーストレスポンダーのステータスを辞任するように求められたときに呼び出されます。これは、アプリケーションがテキストフィールドにフォーカスを辞任するように要求した場合、またはユーザーが編集フォーカスを別のコントロールに変更しようとした場合に発生する可能性があります。ただし、フォーカスが実際に変わる前に、テキストフィールドはこのメソッドを呼び出して、デリゲートにそれを行うかどうかを決定する機会を与えます。
通常、このメソッドからYESを返すと、テキストフィールドがファーストレスポンダーのステータスを辞任できるようになります。ただし、デリゲートがテキストフィールドで無効なコンテンツを検出した場合は、NOを返すことがあります。NOを返すことにより、テキストフィールドに有効な値が含まれるまで、ユーザーが別のコントロールに切り替えるのを防ぐことができます。
textFieldDidEndEditing:
指定されたテキストフィールドの編集が停止したことをデリゲートに通知します。
- (void)textFieldDidEndEditing:(UITextField *)textField
ディスカッション このメソッドは、テキストフィールドが最初のレスポンダーステータスを辞任した後に呼び出されます。このメソッドを使用して、デリゲートの状態情報を更新できます。たとえば、このメソッドを使用して、編集中にのみ表示されるはずのオーバーレイビューを非表示にすることができます。デリゲートによるこのメソッドの実装はオプションです。
site:apple.com textFieldShouldendEditing
on textFieldShouldendEditing
:BOOL
値を返す必要がありますYESは応答者を辞任し、NOは現在の場所に留まります
textfieldDidEndEditing
テキストフィールドが編集モードの後にあるときに発生します。
Appleによる
このメソッドは、テキストフィールドがファーストレスポンダーのステータスを辞任するように求められたときに呼び出されます。
このメソッドは、テキストフィールドが最初のレスポンダーステータスを辞任した後に呼び出されます。