7

textFieldShouldendEditingtextfieldDidEndEditingの違いは何ですか?また、各メソッドをいつ使用する必要がありますか?

4

2 に答える 2

12

textFieldShouldEndEditing

指定されたテキストフィールドで編集を停止するかどうかを代理人に尋ねます。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

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

通常、このメソッドからYESを返すと、テキストフィールドがファーストレスポンダーのステータスを辞任できるようになります。ただし、デリゲートがテキストフィールドで無効なコンテンツを検出した場合は、NOを返すことがあります。NOを返すことにより、テキストフィールドに有効な値が含まれるまで、ユーザーが別のコントロールに切り替えるのを防ぐことができます。

textFieldDidEndEditing

指定されたテキストフィールドの編集が停止したことをデリゲートに通知します。

- (void)textFieldDidEndEditing:(UITextField *)textField

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

site:apple.com textFieldShouldendEditing

textFieldShouldEndEditing

textFieldDidEndEditing

于 2012-09-04T11:56:59.283 に答える
2

on textFieldShouldendEditingBOOL値を返す必要がありますYESは応答者を辞任し、NOは現在の場所に留まります

textfieldDidEndEditingテキストフィールドが編集モードの後に​​あるときに発生します。

Appleによる

このメソッドは、テキストフィールドがファーストレスポンダーのステータスを辞任するように求められたときに呼び出されます。

このメソッドは、テキストフィールドが最初のレスポンダーステータスを辞任した後に呼び出されます。

于 2012-09-04T11:53:10.897 に答える