UIKeyboardFrameEndUserInfoKey Incorrect on navigation transition
| Originator: | calebmdavenport | ||
| Number: | rdar://15054825 | Date Originated: | September 23, 2013 |
| Status: | Open | Resolved: | |
| Product: | iOS SDK | Product Version: | iOS 7 GM |
| Classification: | Reproducible: | Always |
Summary:
In iOS versions lower than 7.0, the value for UIKeyboardFrameEndUserInfoKey would report an accurate screen frame on navigation push and pop. The x value would be equal to the screen width for a pop and minus the screen width for a push. In iOS 7 the x value of the frame is always 0, making it difficult for animations to appear consistent with the system animation on such a transition.
In the results sections below, note that the value of UIKeyboardFrameEndUserInfoKey reports an offscreen-to-the-right frame, instead of an offscreen-to-the-bottom frame.
Steps to Reproduce:
1. Push a view controller onto a UINavigationController stack
2. Register for UIKeyboardWillShowNotification in that view controller
3. Make the keyboard appear by inserting a UITextField into the view controller's view and cause it to become first responder
4. Pop the view controller from the navigation stack
Expected Results:
(lldb) po notification
NSConcreteNotification 0xb446110 {name = UIKeyboardWillHideNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.35";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 460}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 460}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 352}, {320, 216}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{320, 352}, {320, 216}}";
}}
Actual Results:
(lldb) po notification
NSConcreteNotification 0xc100ce0 {name = UIKeyboardWillHideNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 7;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 460}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 676}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 352}, {320, 216}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 568}, {320, 216}}";
}}
Version:
iOS 7 GM
Notes:
Configuration:
Attachments:
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!