Как форма проверки, там какой-либо путь состоит в том, чтобы препятствовать тому, чтобы аварийное представление отклонило при нажатии кнопки "OK"?
Сценарий: у Меня есть 2 текстовых поля в alertview для имени пользователя/пароля. Если и пусты и пользователь, нажимает "OK", я не хочу, чтобы предупреждение было отклонено.
Я не думаю, что вам действительно нужно передавать имена кнопок. Просто вытащите строку кнопки OK и оставьте ее как "nil".
Вы делаете это неправильно, вы должны включить и отключить кнопку отправки в соответствии с входом. Сначала необходимо получить доступ к кнопке. Это просто, просто создайте предупреждение без кнопок, создайте отдельную кнопку и добавьте ее в диалог:
[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;
}
Конечно, вы должны обернуть все это в отдельный класс, чтобы не испортить код вызова.