我正在尝试在每行中包含14个字符的textview,并允许用户输入10个这样的行。第15个字符是每行中的新行字符。当用户尝试在现有行文本之间编辑文本时,会出现问题。新添加的文本出现在整个文本的末尾。这是因为我在第14个字符后添加换行符,当用户开始键入时,由于哪个光标在结尾处而文本被添加到那里。我设法通过设置光标位置来解决这个问题,但是当文本转到新行时,字符正在改变它们的位置。退格也因此而产生问题。将获得任何帮助!!!
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if ([text isEqualToString:@"\n"]) {
return NO;
}
NSMutableString *fullstring = [[textView.text stringByReplacingCharactersInRange:range withString:text] mutableCopy];
NSInteger intCharcount = fullstring.length - range.length + text.length;
const char * _char = [text cStringUsingEncoding:NSUTF8StringEncoding];
int isBackSpace = strcmp(_char, "\b");
if (isBackSpace == -8) {
}
else{
textView.text = [textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];
for (i=0; i<intCharcount; i++) {
if (i>0 && i%15 == 0) {
NSMutableString *fullstring = [textView.text mutableCopy];
[fullstring insertString:@"\n" atIndex:i-1];
textView.text = fullstring;
}
else{
textView.selectedRange = NSMakeRange(range.location, 0);
}
}
if (intCharcount >= 151) {
return NO;
}
}
return YES;
}