препятствуйте тому, чтобы UIAlertView отклонил

Как форма проверки, там какой-либо путь состоит в том, чтобы препятствовать тому, чтобы аварийное представление отклонило при нажатии кнопки "OK"?

Сценарий: у Меня есть 2 текстовых поля в alertview для имени пользователя/пароля. Если и пусты и пользователь, нажимает "OK", я не хочу, чтобы предупреждение было отклонено.

10
задан rson 22 December 2009 в 17:09
поделиться

2 ответа

Я не думаю, что вам действительно нужно передавать имена кнопок. Просто вытащите строку кнопки OK и оставьте ее как "nil".

0
ответ дан 3 December 2019 в 18:33
поделиться

Вы делаете это неправильно, вы должны включить и отключить кнопку отправки в соответствии с входом. Сначала необходимо получить доступ к кнопке. Это просто, просто создайте предупреждение без кнопок, создайте отдельную кнопку и добавьте ее в диалог:

[alert addButtonWithTitle:@"OK"];
UIButton *submitButton = [[alert subviews] lastObject];
[submitButton setEnabled:…];

А затем вы должны назначить делегата для этих текстовых полей и включить или отключить кнопку при смене полей:

- (BOOL) textField: (UITextField*) textField
    shouldChangeCharactersInRange: (NSRange) range
    replacementString: (NSString*) string
{
    int textLength = [textField.text length];
    int replacementLength = [string length];
    BOOL hasCharacters = (replacementLength > 0) || (textLength > 1);
    [self setButtonsAreEnabled:hasCharacters];
}

// Disable the ‘Return’ key on keyboard.
- (BOOL) textFieldShouldReturn: (UITextField*) textField
{
    return NO;
}

Конечно, вы должны обернуть все это в отдельный класс, чтобы не испортить код вызова.

9
ответ дан 3 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: