2011-05-05 3 views
4

bonjour j'utilise un formulaire pour la saisie de données, certains des champs de texte sont dans le bas de la forme. quand je clique sur les champs de texte pour l'écriture, le clavier apparaît et cache les champs le faisant. Si je fais le premier répondeur de textfield il cache le clavier mais en faisant ceci je suis incapable de faire ceci. je veux savoir comment il est possible que lorsque le clavier apparaît, sous forme entière doit se déplacer dans la façon dont mon dernier champ apparaît sur la op de clés du conseil merci à l'avanceglisser forme lorsque le clavier apparaît

+1

Voir aussi: [? Faire la diapositive vue jusqu'à faire de la place pour le clavier] (http: // stackoverflow .com/questions/5892205/making-the-view-slide-up-to-make-room-for-the-keyboard). –

Répondre

6

Ajoutez tous votre point de vue dans un rouleau vue et délégué ensemble de vue de défilement et textfield utilisent ensuite ces délégués et méthode -

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 

    [self scrollViewToCenterOfScreen:textField];  
    return YES; 

} 

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    if ([textField isEqual:txtField1]) 
    { 
     [txtField2 becomeFirstResponder]; 
    } 
    else if ([textField isEqual:txtField2]) 
    { 
     [txtField3 becomeFirstResponder]; 
    } 
    else 
    { 
     [textField resignFirstResponder];  
     [scrollView setContentOffset:CGPointMake(0, 0) animated:YES]; 
    } 

    return YES; 

} 

- (void)scrollViewToCenterOfScreen:(UIView *)theView { 
    CGFloat viewCenterY = theView.center.y; 
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; 

    CGFloat availableHeight = applicationFrame.size.height - 200;   // Remove area covered by keyboard 

    CGFloat y = viewCenterY - availableHeight/2.0; 
    if (y < 0) { 
     y = 0; 
    } 
    [scrollView setContentOffset:CGPointMake(0, y) animated:YES]; 

} 
Questions connexes