キーボードで削除キーを押したままにすると、iOS が UITextViewDelegate に誤った情報を提供するという問題が発生しました。
ユーザーが iPad のUITextViewで削除キーを押し続けると、UITextView は押し続けている時間が長いほど、個々の文字ではなく単語全体を削除し始めます (注: これはシミュレーターでは発生しません)。
これが発生すると、UITextView デリゲート メソッドは次のようになります。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
正しいカーソル位置で構成される範囲で呼び出されますが、長さは 1 です。これは、UITextView が単一の文字ではなく単語全体を削除するようになったため、正しくありません。たとえば、次のコードは単一のスペースのみを出力します。
[textView substringWithRange:range]
string contains " "
UITextView が単語全体を削除しているにもかかわらず。置換テキストは、空の文字列として正しく指定されます。この問題の解決策または回避策を知っている人はいますか?