2012-01-18 9 views

risposta

0

è possibile chiamare il metodo validate dal metodo UIAlertViewDelegate

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

Bind l'evento campo di testo "Editing è finita", o simili, a un metodo nel file proprietario per la gestione della convalida. Il metodo è uno che si scrive nel file controller.m e si dichiara nel file controller.h. Il nome preciso dei file del controller dipende dalla struttura del codice base dell'applicazione.

Come si gestisce il caso della mancata convalida, ad es. il contenuto è vuoto, dipende dalle esigenze della tua applicazione. Ad esempio, se il contenuto è vuoto, sarà necessario avvisare l'utente, quindi reimpostare lo stato attivo sul campo di testo.

Se sei un po 'nuovo alla programmazione iOS, potresti trovare utile il tutorial di Ray Wnderlich. http://www.raywenderlich.com/

Ho trovato che l'"Apprendista iOS" è ben fatto. Inoltre, potrebbe essere utile un nuovo libro di Dave Mark, "Inizio dello sviluppo di iOS 5".

0

Impostare il delegato del alertView al vostro viewController corrente
poi nel metodo delegato

- (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 
    } 
} 

Spero che questo aiuta.
BR, Hari

0

1: Prendi il UITextField nella alertView:

self.alertViewTextField = [alertView textFieldAtIndex:0]; 

2: Controllare la lunghezza del testo durante la modifica textField cambiato:

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

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

Supponiamo che si dispone di un Pulsante "OK" (o qualcosa di simile) come il primo degli altri pulsanti di UIAlertView. Supponiamo inoltre di volere che il pulsante sia abilitato se e solo se la lunghezza del testo nel campo di testo è maggiore di 0. Quindi la soluzione per la convalida è semplice. Nel delegato del UIAlertView implementare:

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

Questo ha il vantaggio su alcune delle altre risposte (che utilizzano clickedButtonAtIndex :), che l'utente è immediato a conoscenza del fatto che il campo di testo contiene input valido.

Questo messaggio delegato non è spiegato molto bene nella documentazione Apple, ma funziona molto bene. Qualsiasi modifica al valore del campo di testo causerà l'invio di questo messaggio e il pulsante "OK" da abilitare o disabilitare di conseguenza.

Problemi correlati