Обнаружение изменения фокуса для UITextField

Я пытаюсь настроить анимацию для перемещения представления вверх, когда клавиатура скрывается и появляется для текстовых полей, и у меня это работает отлично, но когда фокус перемещается с одного текстового поля на другое, это не работает. не работает, так как клавиатура уже была показана.

В viewDidLoad я прописал следующее:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

а затем в методах keyboardWillShow и keyboardWillHide он определяет, должно ли представление двигаться или нет, и соответственно анимировать. Но если клавиатура уже была показана, а пользователь щелкает другое текстовое поле, для которого нужно, чтобы представление перемещалось вверх, метод не будет вызываться. Есть ли способ определить, был ли изменен фокус на другое текстовое поле, когда клавиатура уже была показана? Было бы здорово, если бы был способ сделать это без необходимости устанавливать все текстовые поля для делегатов.

Заранее спасибо.

36
задан Dennis 20 May 2012 в 07:47
поделиться