Я хочу сравнить строку с вводимым пользователем символом. например Я хочу, чтобы пользовательский ввод "У меня есть яблоко". и сравните ввод с этой строкой, чтобы увидеть, является ли его ввод правильным. Когда он введет неправильный символ, iphone будет вибрировать, чтобы немедленно сообщить ему. Проблема в том, что я нахожу некоторые символы, такие как пробел, дважды вызовет метод делегата
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
Когда я нажимаю клавишу пробела, в первый раз, когда я сравниваю текст с '', результат покажет мне, что это один и тот же символ. Но после этого я должен продвинуть индекс строкового символа к следующему. И во второй раз, когда вызывается метод делегата, iphone будет вибрировать. Любые идеи о том, как решить эту проблему?
Вот мой код:
strText = @"I have an apple.";
index = 0;
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
NSRange rg = {index, 1};
NSString *correctChar = [strText substringWithRange:rg];
if([text isEqualToString:correctChar])
{
index++;
if(index == [strText length])
{
// inform the user that all of his input is correct
}
else
{
// tell the user that he has index(the number of correct characters) characters correct
}
}
else {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
return NO;
}
return YES;
}