Alb*_*haw 2 iphone xcode objective-c uitextviewdelegate ios
我想检查一个用户是否在textView中对一个字符进行退格,如果有任何相同的字符连接它以便将它们全部删除...
例如,如果我正在检查的字符是"e",我有文本"easy heeeeeello",并且用户开始按退格键,它将变为:
容易heeeeeello - >容易heeeeeell - >容易heeeeeel - >容易heeeeee - >容易h
代码应该检测到按下退格键.然后它会检测哪些文本将被删除,如果该文本是一个字符(在我们的例子中是"e"),它将检查是否有更多的"e"触及"e"创建一条"e" s并删除所有.
你能帮助我吗?
好的,所以我写了这段代码,它对我有用
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@""]) {
//Detected backspace character as the new character is @"" meaning something will be deleted
char toDelete = [textView.text characterAtIndex:range.location];
int duplicateCharCount = 0;
for(int i =range.location-1; i>=0; i--) {
if([textView.text characterAtIndex:i] == toDelete) {
duplicateCharCount++;
} else {
break;
}
}
NSRange newRange = NSMakeRange(0, range.location - duplicateCharCount);
[textView setText:[textView.text substringWithRange:newRange]];
return NO;
} else {
return YES;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道它不是最好的实现,但现在你知道如何继续
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
2295 次 |
| 最近记录: |