我实现了一个基于UITextView的自定义textview,试图收听文本更改事件。所以我实现了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,range
为113,0
。我的代码出了什么问题?谢谢!
答案 0 :(得分:0)
只要在textview中进行更改,就会自动调用此方法,并且该方法非常稳定。我的猜测(正如您在上面的评论中所证实的那样)是您必须在代码中手动调用此方法,并提供不正确的范围。