Я получил код ниже из этого вопроса SO. Я пытаюсь свернуть текстовые поля, когда я начинаю редактирование (потому что в противном случае они покрываются клавиатурой iPhone). Тем не менее, оператор журнала показывает, что метод textFieldDidBeginEditing не вызван.
У меня есть код ниже в двух разных подклассах UIViewController. В одном из них, например, у меня есть текстовое поле, связанное с раскадровкой с UIViewController, вроде этого
@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;
Я переместил текстовое поле вверху представления (т.е. не было закрыто клавиатурой), чтобы изменить его, чтобы попытаться вызвать оператор журнала, но он не сработал. Текстовое поле в противном случае работает, как ожидается, то есть данные, которые я вводил, получают сохранение в coreData и т.д. И т.д.
Можете ли вы объяснить, что я могу делать неправильно?
- (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];
}