Я использую следующие NSNotifications в UIView, чтобы представление можно было уведомлять, когда появляется UIKeyboard, и настраивать его положение (фрейм) на экране:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
На два вышеупомянутых уведомления подписываются в -init
метод UIView. Где лучше всего отказаться от подписки на эти уведомления, когда представление исчезло за пределами экрана? В настоящий момент приложение дает сбой всякий раз, когда UIKeyboard появляется в другом представлении, предположительно из-за того, что уведомление все еще отправляется в выпущенный тогда UIView.
Кроме того, есть ли лучшее место для подписки на уведомления, помимо метода -init
?
Спасибо за любую помощь.