Cómo detectar el carácter de input del usuario en UITextView

¿Cómo detectar el carácter de input del usuario en UITextView?

Por ejemplo: (en UITextView NO UITextField)

cuando la letra de input del usuario "a" desencadena un evento. cuando la input del usuario "hágalo", desencadene otro evento. o ingrese "http://www.stackoverflow.com" desencadenar un evento.

Gracias

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString* parameterStr=@""; parameterStr=[[textField text] stringByAppendingString:string]; if([parameterStr isEqualToString:@"do it"] || [parameterStr isEqualToString:@"http://www.stackoverflow.com"] || [parameterStr isEqualToString:@"a"]) { return YES; } else { return NO; } } 

Puede supervisar los cambios de contenido de TextView dentro de este método de delegado y activar las acciones necesarias.

 - (void)textViewDidChange:(UITextView *)textView { //Access the textView Content //From here you can get the last text entenetworking by the user NSArray *stringsSeparatedBySpace = [textView.text componentsSeparatedByString:@" "]; //then you can check whether its one of your userstrings and trigger the event NSString *lastString = [stringsSeparatedBySpace lastObject]; if([lastString isEqualToString:@"http://www.stackoverflow.com"]) //add more conditions here { [self callActionMethod]; } } 

Este delegado será llamado siempre que un usuario presione la tecla

Prueba esto :-

 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if([[textView.text stringByAppendingString:text] isEqualToString:@"a"]) { //trigger 'a' operation } else if([[textView.text stringByAppendingString:text] isEqualToString:@"do it"]) { //trigger do it operation } //Same conditions go on } 

Solución Working Swift 3

Primero, agregue UITextFieldDelegate

Luego, establezca delegado en viewDidLoad así, self.testTextField.delegate = self

Y finalmente, llame a la function textViewDidChange , ejemplo a continuación.

 func textViewDidChange(_ textView: UITextView) { // Do the logic you want to happen everytime the textView changes // if string is == "do it" etc.... }