¿Qué acciones de addTarget podemos tomar en UITextView?

Quiero usar addTarget: acción en UITextView como en (UITextField o UIButton).

Quiero llamar a un método en UITextView.

por favor da alguna solución posible …

Gracias…

UITextView *TXT_First_Tag = [[UITextView alloc] initWithFrame:CGRectMake(5, textPosY, 350, 65)]; TXT_First_Tag.backgroundColor = [UIColor whiteColor]; TXT_First_Tag.font = [UIFont fontWithName:@"Arial-BoldMT" size:30.0]; TXT_First_Tag.editable =YES; TXT_First_Tag.tag = i; TXT_First_Tag.textColor = [UIColor blackColor]; [TXT_First_Tag addTarget:self action:@selector(C6Loop) forControlEvents:UIControlEventEditingDidEnd]; // This Line I want to use, it's working fine on textfield... [scrollview addSubview:TXT_First_Tag]; 

Usamos los methods de delegado de UITextView para este propósito.

Coloca esto en tu código.

 UITextView *TXT_First_Tag = [[UITextView alloc] initWithFrame:CGRectMake(5, textPosY, 350, 65)]; TXT_First_Tag.backgroundColor = [UIColor whiteColor]; TXT_First_Tag.font = [UIFont fontWithName:@"Arial-BoldMT" size:30.0]; TXT_First_Tag.editable =YES; TXT_First_Tag.delegate = self; TXT_First_Tag.tag = i; TXT_First_Tag.textColor = [UIColor blackColor]; [scrollview addSubview:TXT_First_Tag]; - (void)textViewDidBeginEditing:(UITextView *)textView{ NSLog(@"Begin editing"); } - (void)textViewDidEndEditing:(UITextView *)textView{ NSLog(@"DidEndEditing"); } - (BOOL)textViewShouldBeginEditing:(UITextView *)textView{ NSLog(@"ShouldBeginEditing"); return TRUE; } - (BOOL)textViewShouldEndEditing:(UITextView *)textView{ NSLog(@"ShouldEndEditing"); return TRUE; } 

Si quieres hacer alguna tarea antes de editar tu vista de text que usar

 -(void)textViewDidBeginEditing:(UITextView *)textView {} 

o si quiere hacer después de editar la vista de text que use

 -(void)textViewDidEndEditing:(UITextView *)textView {} 

para eso tiene que agregar el protocolo llamado UITextViewDelegate y en viewdidload write

 yourtextview.delegate = self; 

Seguramente una mejor manera de get el post "editing did end" es implementando UITextViewDelegate ?

 TXT_First_Tag.delegate = self; ... - (void)textViewDidEndEditing:(UITextView *)textView { // stuff you'd put in C6Loop 

Chaps, a pesar de que sus respuestas no resolvieron directamente mi problema, me ayudó a networkingucirlo.

Tengo vistas de text en cada celda y necesito pasar qué vista de text se estaba editando para poder actualizar la database.

En pocas palabras, establezco cada label de vista de text en cada celda a indexpath.row. Luego hago reference a esa celda en el delegado por textview.tag

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier = @"MyIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; if (cell == nil) { [[NSBundle mainBundle] loadNibNamed:@"frontCell" owner:self options:nil]; cell = mainPageCell; self.mainPageCell = nil; cell.selectionStyle = UITableViewCellSelectionStyleNone; } UITextView *trackDetails; trackDetails = (UITextView *)[cell viewWithTag:22]; trackDetails.text = [[myArray objectAtIndex:indexPath.row] objectAtIndex:0]; trackDetails.delegate = self; trackDetails.tag = indexPath.row; } - (void)textViewDidEndEditing:(UITextView *)textView { NSLog(@"%d",textView.tag); UPDATE DATABASE WITH CHANGED TEXT [textView resignFirstResponder]; [self.tableView reloadData]; }