- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSMutableString *updatedText = [[NSMutableString alloc] initWithString:textView.text];
[updatedText insertString:text atIndex:range.location];
const char *pch = [text UTF8String];
switch (*pch) {
case 'a': // you can replace it with any other char.
textView.text = updatedText;
return NO;
break;
default:
return YES;
break;
}
}
如果你想看,我把这个演示放在一个简单的项目中。 https://dl.dropboxusercontent.com/u/75922069/test-uitextview.zip
答案 0 :(得分:0)
我通过创建NSLayoutManager来解决此错误。或者,如果您只需要获取正确的textVIew.contentSize,则可以从此处获取详细信息: Click here
答案 1 :(得分:0)
尝试直接更改UITextView的NSTextStorage对象中的文本。你可以这样做:
[myTextView.textStorage replaceCharactersInRange:(NSRange) withString:(NSString *)]
或
[myTextView.textStorage insertAttributedString:(NSAttributedString *) atIndex:(NSUInteger)]
请注意,这只适用于IOS 7 ...