UITextView
una UITextView
que permite el labeldo dynamic cuando el usuario escribe @
.
¿Es posible detectar un @
eliminado, para detener mi process de labeldo específico que creé? Si es así, ¿cómo puedo hacer eso? UITextView
no tiene tales methods de delegado.
yo usaría
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
Luego cree un NSString
en el que almacene el último carácter agregado a UITextView
. Dentro del método anterior, agregue el siguiente fragment.
if ([text isEqualToString:@""] && [lastRecordedString isEqualToString@"@"]) { //do whatever you want to do when an @ is deleted } lastRecordedString = [textView.text substringFromIndex:[string length]-1];
EDITAR: vea el código editado arriba. Ahora lastRecordedString
es el último carácter en UITextView
después de UITextView
un carácter. Esto debería funcionar.
Puede get el text original que será reemplazado por el uso:
NSString *originalText = [textView.text substringWithRange:range];
en tus
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
método.
Entonces hazlo
if ([originalText rangeOfString:@"tag"].length > 0) { NSLog(@"delete tag string"); }
Detectará si el usuario elimina una cadena específica.
¡Espero que sea útil!