2012-08-30 2 views
0

Итак, я хочу представить пользователю предупреждение, чтобы ввести пароль. Я бы хотел проверить, чтобы что-то было введено на клавиатуре. Я знаю, что в UIAlertViewDelegate вы можете получить ввод текста. Однако, единственное решение, которое я до сих пор есть,UIAlertView, представленный для UIAlertViewStyleSecureTextInput

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    NSLog(@"buttonIndex: %i", buttonIndex); 

    if (buttonIndex == 0) { 
     UITextField *passwordTextField = [alertView textFieldAtIndex:0]; 
     if (!passwordTextField.text.length == 0) { 
      NSLog(@"password: %@", passwordTextField.text); 
      // save the password 
     } 
     else { 
      // Show the alert view again asking for the password 
     } 

    } 

} 

, где я бы просить пароль еще раз сразу после того, нажмите кнопку ОК, если они не вступали ничего. Есть ли лучшее решение для этого? Благодаря!

ответ

0

Представьте вид предупреждения еще раз. Вы можете поместить представление предупреждения в метод и вызвать его.

... 

} else { 

    [self showPassAlert]; 

} 

Вы также можете посмотреть, когда текстовое поле редактируется, а также включить/отключить кнопку в предупредительном зрении. Если длина текстового поля равна 0, отключите кнопку. Когда текстовое поле отредактировано и его длина больше 0, включите кнопку. Это более грациозно, чем закрытие и повторное открытие.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange) name:UITextFieldTextDidChangeNotification object:textField]; 

... 

-(void)textDidChange { 

    for (UIView *view in alertView.subviews) { 

     if ([view isKindOfClass:[UIButton class]]) { 

      if (textField.text.length == 0) { 

       //you may need to look for the button's title to make sure you are not disabling the cancel button 

       ((UIButton *) view).enabled = NO; 

      } else { 

       ((UIButton *) view).enabled = YES; 

      } 

     } 

    } 

} 
0

Почему вы не создавать iboutlet/ссылки для ваших UITextFields, который поможет вам получить его значение в любой момент времени.

Смежные вопросы