2010-06-02 6 views
1

J'ai une vue défilante; à l'intérieur j'ajoute une ou plusieurs vues de texte; à chaque affichage de texte ajouter un bouton:Action pour UIButton créé dynamiquement dans UITextView

 
UIScrollView 
    UITexView 
     UIButton 
    UITextView 
     UIButton 
    ... 

Cela fait partie du code:

 

- (void)viewDidLoad { 
    ... 
    [self loadUI]; 
    ... 
} 

-(void) loadUI { 
    UITextView *textView; 
    ... 
    for (...) { 
     UIButton *editButton = [[UIButton alloc] initWithFrame: 
CGRectMake(self.scrollView.frame.size.width - 230, 0, 50, 20)]; 
     ... 
     [editButton addTarget:self action:@selector(editPressed:) 
forControlEvents:UIControlEventTouchUpInside]; 
     ... 
     textView = [[CustomTextView alloc] initWithFrame: 
CGRectMake(10, dynamicHeight, self.queuedView.frame.size.width - 100, 500)]; 
     textView.userInteractionEnabled = NO; 
     ... 
     [textView addSubview:editButton]; 
     [editButton release]; 
     ... 
     [self.scrollView addSubview:textView]; 
     [textView release]; 
    } 
} 

- (IBAction) editPressed:(id)sender { 
    ... 
} 
 

Pour une raison quelconque, la méthode editPressed n'est pas appelée lorsque j'appuie sur le bouton. Des idées pourquoi? J'ai essayé de régler l'interaction activée pour la vue de texte à OUI, mais toujours rien. J'ai changé de forme (IBAction) à (vide), toujours rien.

Merci, Mihai

Répondre

0

Apparemment, textView.userInteractionEnabled = YES; a fait l'affaire. J'ai déjà essayé ça mais ça n'a pas marché. Peut-être que je devais faire une construction propre après le changement.

0

Essayez d'ajouter le bouton à rightView du textfield

faire textField.rightView = editButton au lieu de [textView addSubview:editButton];

Questions connexes