2011-03-04 11 views

Respuesta

24
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (range.length > 0) 
    { 
     // We're deleting 
    } 
    else 
    { 
     // We're adding 
    } 
} 
+0

esto lo hace muy fácil. ¡Gracias! – serge2487

+0

Buena idea, pero no pude obtener el número de caracteres después de eliminar, así que salté a la respuesta de @Ishu, gracias de cualquier manera – Husam

5

Lógica: Para encontrar eliminación que necesita para construir una cadena después de cada letra escribe a continuación, se puede comprobar en cada cambio si la cadena es sub cadena de la cadena buid entonces significa que el usuario borrar la última letra y si la cadena de construcción es una cadena secundaria de textField text luego el usuario agrega una letra.

puede utilizar el método delegado que se está utilizando con esta lógica o puede utilizar la notificación

puede utilizar esta notificación para encontrar cualquier tipo de cambio

añadir estas líneas en viewDidLoad

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 

    [notificationCenter addObserver:self 
          selector:@selector (handle_TextFieldTextChanged:) 
           name:UITextFieldTextDidChangeNotification 
          object:yourTextField]; 

y hacer esta función

- (void) handle_TextFieldTextChanged:(id)notification { 

    //you can implement logic here. 
    if([yourTextField.text isEqulatToString:@""]) 
    { 
     //your code 
    } 

} 
1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSUInteger newLength = [textField.text length] + [string length] - range.length; 
    if (newLength > [textField.text length]) 
     // Characters added 
    else 
     // Characters deleted 
    return YES; 
} 
Cuestiones relacionadas