textFieldDidBeginEditing: ne pas être appelé

J'ai obtenu le code ci-dessous à partir de cette DONC, la question. Je suis en train de glisser vers le haut textfields quand j'ai commencer à la modifier (car autrement ils couverts par l'iPhone clavier). Toutefois, l'instruction de journal révèle que le textFieldDidBeginEditing méthode n'est pas appelée.

J'ai le code ci-dessous dans deux différentes sous-classes de UIViewController. Dans l'un d'eux, par exemple, j'ai un textfield connecté à partir de la maquette à la UIViewController comme ce

@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;

J'ai déplacé le champ de texte vers le haut de la vue (c'est à dire pas couverts par le clavier) pour que je puisse le modifier pour essayer de déclencher le journal de déclaration, mais il ne fonctionne pas. Le champ de texte fonctionne comme prévu c'est à dire les données que j'ai entrée est sauvés de coreData etc etc.

Pouvez-vous expliquer ce que je fais de mal?

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"The did begin edit method was called");
    [self animateTextField: textField up: YES];
}


- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self animateTextField: textField up: NO];
}

- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
    const int movementDistance = 180; //tweak as needed
    const float movementDuration = 0.3f; //tweak as needed

    int movement = (up ? -movementDistance : movementDistance);

    [UIView beginAnimations: @"anim" context: nil];
    [UIView setAnimationBeginsFromCurrentState: YES];
    [UIView setAnimationDuration: movementDuration];
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);
    [UIView commitAnimations];
}

source d'informationauteur Leahcim | 2014-05-12