2012-01-18 17 views

Respuesta

0

puede llamar a su método de validación del método UIAlertViewDelegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
0

Enlazar el evento campo de texto "Edición se acabó", o similar, para un método en el propietario del archivo para el manejo de la validación. El método es uno que escribe en el archivo controller.m y lo declara en el archivo controller.h. El nombre exacto de los archivos del controlador depende de la estructura de la base de código de su aplicación.

Cómo maneja el caso de la falla de validación, p. el contenido está vacío, depende de las necesidades de su aplicación. Por ejemplo, si el contenido está vacío, deberá alertar al usuario y restablecer el foco en el campo de texto.

Si eres un poco nuevo en la programación de iOS, es posible que los tutoriales de Ray Wnderlich sean útiles. http://www.raywenderlich.com/

Encontré que el "iOS Apprentice" estaba muy bien hecho. Además, un nuevo libro de Dave Mark, "Beginning iOS 5 Development", puede ser útil.

0

Establecer el delegado de alertView a su viewController actual
continuación, en el método delegado

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0)return; //for cancel button 

    UITextField *textField = [alertView textFieldAtIndex:0]; // since there is only one UITextField in alertView 
    if ([textField.text length] > 0) // checking the length of the text in UITextField 
    { 
      // Your code goes here 
    } 
} 

espero que esto ayude.
BR, Hari

0

1: Obtener el UITextField en el alertView:

self.alertViewTextField = [alertView textFieldAtIndex:0]; 

2: Compruebe la longitud del texto durante la edición textField cambió:

[self.alertViewTextField addTarget:self action:@selector(alertViewTextFieldDidChanged) forControlEvents:UIControlEventEditingChanged]; 

-(void)alertViewTextFieldDidChanged{ 
    if(self.alertViewTextField.text.length == 0){ 
     // ... 
    } 
} 
11

Supongamos que usted tiene una Botón "Aceptar" (o algo similar) como el primero de los otros botones de UIAlertView. Supongamos además que desea habilitar ese botón si y solo si la longitud del texto en el campo de texto es mayor que 0. Entonces, la solución para la validación es simple. En el delegado de la UIAlertView implementar:

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 
{ 
    return [[alertView textFieldAtIndex:0].text length] > 0; 
} 

Esto tiene la ventaja sobre algunas de las otras respuestas (que utilizan clickedButtonAtIndex :), que el usuario es consciente inmediata de si el campo de texto de entrada válida.

Este mensaje de delegado no está muy bien explicado en la documentación de Apple, pero funciona muy bien. Cualquier cambio en el valor del campo de texto causará que este mensaje sea enviado, y el botón "OK" se habilite o deshabilite en consecuencia.

Cuestiones relacionadas