Xcode - как зациклить UIAlert (с текстовым полем), пока не будет введено правильное значение? - PullRequest
0 голосов
/ 23 февраля 2012

В настоящее время я работаю в XCode над приложением для iOS ...

Я настроил UIAlertView (с вопросом в качестве сообщения), чтобы всплывать с текстовым полем для получения ответа.

Требуемая функциональность заключается в том, что при вводе неверного значения в текстовое поле UIAlert будет зацикливаться ... До тех пор, пока не будет введен правильный ответ.На этом этапе UIAlert будет отклонен.

Я провел обширный поиск в Google и не могу найти решение ... Любые ответы будут очень благодарны!

1 Ответ

1 голос
/ 23 февраля 2012

Установите ваш класс как UITextFieldDelegate, и при условии, что у вас есть свойство для UIAlertView, которое называется alertView:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *textFieldString = textField.text;
    if ([textFieldString isEqualToString:@"something"])
    {
        [self.alertView dismissWithClickedButtonIndex:-1 animated:YES];
    }
}

Если вы хотите более детальное сопоставление, используйте NSRegularExpression или NSRange, если вы ищете подстроку:

NSRange result = [textFieldString rangeOfString:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)];
if (result.location != NSNotFound)
{
   // dismiss
}
...