我基于 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
is 113,0
. 我的代码有什么问题?谢谢!