ここでの他の回答に加えて(これは本質的に大きな違いがないこと、 return による最初の応答者の自動辞任がないことなどを確認します)、特に自動修正付きの戻り値に完全に依存YES
する奇妙な出来事を発見しました.UITextField
次のシナリオを想定します。
UITextField
自動修正が有効になっている
次のようなデリゲート メソッドを実装しました (テキスト フィールドが破棄されます)。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == self.myAutocorrectingTextField) {
[self.myAutocorrectingTextField resignFirstResponder];
}
return YES;
}
アプリを実行し、テキスト フィールドに「Cable」と入力してリターン キーを押し、最初の応答者として再署名します。
返されたときの結果YES
:
- テキスト フィールドのテキストが「Cable」から「Cables」に変更されます。
同様に応答する他のいくつかの単語をテストしました。
- 「もの」が「もの」に変わった
- 「十」から「十」
- そして、ある時は「カー」が「カール」に、またある時は「カー」が「カープ」に変わりました
返されたときの結果NO
:
ノーマル。テキスト フィールドのテキストは変更されません。
要約すれば...
を返すYES
と、テキスト フィールドは既に正しい単語を自動修正する場合があります。ただし、これらは正当な単語であるため、「自動修正テキスト バブル」の 1 つを表示しません。
を返すNO
と、テキスト フィールドは既に正しい単語を自動修正しません。
注:
どちらの場合も、スペルが間違っている単語は常に修正されます。例えば:
- 「Web」と入力すると、「Web」というテキストとともに「自動修正テキスト バブル」が表示されます。Return キーを押すと、デリゲートの戻り値に関係なく、テキストが修正に置き換えられます。