Ho ricevuto il codice di seguito dalla domanda this SO. Sto provando a far scorrere i campi di testo quando comincio a modificare (perché altrimenti vengono coperti dalla tastiera dell'iPhone). Tuttavia, l'istruzione del registro rivela che il metodo textFieldDidBeginEditing non viene richiamato.textFieldDidBeginEditing: not getting called
Ho il codice qui sotto in due diverse sottoclassi di UIViewController. In uno di essi, per esempio, ho un textfield collegata dallo storyboard alla UIViewController simili
@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;
ho spostato il campo di testo fino alla parte superiore della vista (cioè non coperta da tastiera) così da poter modificarlo per cercare di attivare l'istruzione del registro ma non ha funzionato. Il campo di testo funziona altrimenti come previsto, cioè i dati che inserisco vengono salvati in coreData ecc. Ecc.
Puoi spiegare cosa potrei fare di sbagliato?
- (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];
}
Viene chiamato uno qualsiasi degli altri metodi delegati o quando è stato eseguito? hai impostato il delegato? – Larme
@larme Devo impostare un delegato affinché funzioni? non sapevo che – Leahcim
'textFieldDidEndEditing': è un metodo delegato. È un metodo 'UITextFieldDelegate', non un' UITextField'. – Larme