UIKeyboardWillShowNotification, UIKeyboardWillHideNotification между NSNotification и NS Версии iOS

У меня есть несколько UITextFields в моем представлении (каждое внутри UITableViewCell). Когда клавиатура запускается из любого текстового поля, мне нужно сделать некоторые анимации, в основном, чтобы изменить фрейм UITableView. То же самое должно произойти, когда клавиатура скроется.

Я выполнил анимацию, так что это не проблема.

Теперь я использую NSNotificationCenter, чтобы поймать отображение / скрытие клавиатуры:

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

Проблема в когда клавиатура видна (используется текстовое поле), и я нажимаю внутри другого текстового поля. Обычно для этой штуки клавиатура не скрывается, но остается видимой.

Она отлично работает в iOS 4, но проблема возникает в 3.1.3 (это версия, которую я могу протестировать - возможно, любая версия ниже 3.2). В версиях старше 3.2 изменение фокуса с текстового поля непосредственно на другое текстовое поле приведет к срабатыванию UIKeyboardWillHideNotification и UIKeyboardWillShowNotification.

Кто-нибудь знает способ выполнить некоторую анимацию, когда клавиатура действительно будет отображаться / скрываться без NSNotificationCenter?

Или как я могу решить эту проблему с версиями ниже 3.2?

Спасибо.

9
задан CristiC 22 July 2011 в 19:36
поделиться