2012-06-19 21 views
8

Sto cercando di cambiare UIKeyboardType sulla tastiera alfabetica quando l'utente digita uno spazio, rispecchiando l'effetto della digitazione di un apostrofo. Tuttavia, il mio codice non cambierà l'aspetto della tastiera finché l'utente non chiude la tastiera e la riporta nuovamente.Modifica UIKeyboardType in base all'input di testo

Modifica: per chiarire, il tipo di tastiera inizia come UIKeyboardTypeNumbersAndPunctuation e voglio passare a ASCIICapable, perché l'input dell'utente tipico è sotto forma di "# cups flour". Mi sono reso conto che la tastiera ASCIICapable ha questa funzionalità integrata, quindi presentare la tastiera con capacità ASCII ma mostrare prima i numeri/la punteggiatura funzionerebbe.

Ecco il mio codice:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     textField.keyboardType = UIKeyboardTypeASCIICapable; 
    } 

return YES; 
} 

risposta

10

respingere la tastiera e quindi diventare di nuovo la prima responder. Nel mio codice, ho creato un IBOutlet per il campo di testo * tf. Ha funzionato.

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     self.tf.keyboardType = UIKeyboardTypeNumberPad; 
     [textField resignFirstResponder]; 
     [self.tf becomeFirstResponder]; 
    } 

    return YES; 
} 
+0

Ha funzionato perfettamente, avrei dovuto pensarci. Grazie Bruno. – MaxGabriel

Problemi correlati