Я только что проверил, это код в моем приложении, используемый для подписки на одно из уведомлений, и он работает в 3.x и 4.0:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(keyboardWillShow:)
name: UIKeyboardWillShowNotification
object: nil];
А из NSLog внутри клавиатуры будет показано:
2010-06-21 08:32:55.750 ClockSmith[3773:307] -[GMTableView keyboardWillShow:] size={320, 216} NSConcreteNotification 0x1de970 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.300000011920929";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 588}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 372}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 264}, {320, 216}}";
}}
Есть ли у вас обработчики в вашем UITableView (я помещаю их в подкласс) или в вашем UIViewController, которые подписываются на эти уведомления? Проверьте ваш код addObserver.