0

テキスト変更イベントをリッスンしようとして、UITextView に基づいてカスタマイズされたテキストビューを実装しました。そこで、UITextView のデリゲートを実装しました。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    //It crashes!
    NSString *result = [textView.text stringByReplacingCharactersInRange:range withString:text];

    return YES;
}

iOS 5 および iOS 6 では、上記のコードは正常に動作します。しかし、iOS 4.3 では例外でクラッシュします***-[NSCFString replaceCharactersInRange:withString:]: Range or index out of bounds。iOS 4.3 で見つかったすべての変数値を出力しました。実際には範囲が範囲外になることがありますtextView.text.length。111 ですがrange113,0. コードの何が問題になっていますか? ありがとう!

4

1 に答える 1

0

このメソッドは、テキストビューで変更が行われるたびに自動的に呼び出され、非常に安定しています。私の推測では (上記のコメントで確認したように)、コード内でこのメソッドを手動で呼び出し、誤った範囲を提供している必要があります。

于 2013-02-04T15:15:41.230 に答える