You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can set a view as inputView for a editable view to appear in place of a keyboard. If this inputView has a scroll view this will erroneously receive a setContentInset after the keyboard finished its incoming animation.
Steps to Reproduce:
Create a UITableViewController
On a UIView that canBecomeFirstResponder set this VC's view as inputView
have the UIView becomeFirstResponder
Expected Results:
The UITableViewController's tableView should not have a contentInset
Actual Results:
Every UIScrollView receives a contentInset, even if it is itself the inputView that was showing "as keyboard".
Regression:
This automatic setting of contentInset started with iOS 6. It does not occur in iOS 5.
Notes:
I believe that the notification that gets sent after the keyboard/inputView animated in should take into consideration that scroll views that are subviews of the showing inputView don't get a contentInset set.
As a workaround I am subclassing UITableView and overriding setContentInset: to ignore the erroneous setting.
This is the call stack I get on this overwritten contentInset:
At first glance I assume that you would want to modify _adjustForAutomaticKeyboardInfo:animated:lastAdjustment: to check if the UITableViewController's view is part of the view hierarchy of the inputView that triggered the inputView frame size change notification.
Description
Summary:
You can set a view as inputView for a editable view to appear in place of a keyboard. If this inputView has a scroll view this will erroneously receive a setContentInset after the keyboard finished its incoming animation.
Steps to Reproduce:
Expected Results:
Actual Results:
Regression:
Notes:
I believe that the notification that gets sent after the keyboard/inputView animated in should take into consideration that scroll views that are subviews of the showing inputView don't get a contentInset set.
As a workaround I am subclassing UITableView and overriding setContentInset: to ignore the erroneous setting.
This is the call stack I get on this overwritten contentInset:
if let
andguard let
to assign toself
in failable value type initializers #1: tid = 0x1c03, 0x0000f6ca RTEDemoApp-[DTFormatTableView setContentInset:](self=0x099e5000, _cmd=0x09405f60, contentInset=(null)) + 58 at DTFormatTableView.m:16, stop reason = breakpoint 3.1 frame #0: 0x0000f6ca RTEDemoApp
-[DTFormatTableView setContentInset:](self=0x099e5000, cmd=0x09405f60, contentInset=%28null%29) + 58 at DTFormatTableView.m:16frame 22108400: Swift 2.0b4: Allow
if let
andguard let
to assign toself
in failable value type initializers #1: 0x0373c1bd CoreFoundation__invoking___ + 29 frame #2: 0x0373c0d6 CoreFoundation
-[NSInvocation invoke] + 342frame 22108354: Swift 2.0b4: Curried initializer syntax #3: 0x016c7def Foundation
NSKVOForwardInvocation + 375 frame #4: 0x03737cf9 CoreFoundation
_forwarding + 905frame 22108118: Apple Music: No Love Icon On CarPlay #5: 0x0373794e CoreFoundation
_CF_forwarding_prep_0 + 14 frame #6: 0x00bc5029 UIKit
-[UIScrollView(UIScrollViewInternal) _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:] + 377frame 22107493: Xocde 7, can't run playground. Unable to create target for stub executable. unable to find executable for #7: 0x00c14ddc UIKit
-[UITableView(UITableViewInternal) _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:] + 73 frame #8: 0x00d87af9 UIKit
-[UITableViewController _adjustTableForKeyboardInfo:] + 201frame 22107374: Xcode should mark debugging messages originating from the main thread #9: 0x00d86c27 UIKit
-[UITableViewControllerKeyboardSupport _keyboardDidChangeFrame:] + 131 frame #10: 0x016d44f9 Foundation
__57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 + 40frame 22106545: automaticallyAdjustsScrollViewInsets doesn't change insets on iOS 9 #11: 0x037a20c5 CoreFoundation
___CFXNotificationPost_block_invoke_0 + 85 frame #12: 0x036fcefa CoreFoundation
_CFXNotificationPost + 2122frame 22105831: Application windows move erratically with two monitors #13: 0x01608bb2 Foundation
-[NSNotificationCenter postNotificationName:object:userInfo:] + 98 frame #14: 0x00f08a29 UIKit
-[UIInputViewTransition postNotificationsForTransitionEnd] + 682frame 22104678: Xcode7-beta4 (7A165t): libtool does not support -ios_version_min link editor flag #15: 0x00f01e5c UIKit
__53-[UIPeripheralHost(UIKitInternal) executeTransition:]_block_invoke_01079 + 203 frame #16: 0x00ba2df6 UIKit
-[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 223frame 22103812: TestFlight does not support yet apps with watchOS 2 #17: 0x00b95d66 UIKit
-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 237 frame #18: 0x00b95f04 UIKit
-[UIViewAnimationState animationDidStop:finished:] + 68frame 22102418: El Capitan Terminal password autofill suggestion #19: 0x006a57d8 QuartzCore
CA::Layer::run_animation_callbacks(void*) + 284 frame #20: 0x01ff0014 libdispatch.dylib
_dispatch_client_callout + 14frame 22100305: Safari does not see my valid Safari Developer cert #21: 0x01fe07d5 libdispatch.dylib
_dispatch_main_queue_callback_4CF + 296 frame #22: 0x036eeaf5 CoreFoundation
__CFRunLoopRun + 1925frame 22098225: Add indexOfObject:inSortedRange:options:usingComparator: method in Swift Array #23: 0x036edf44 CoreFoundation
CFRunLoopRunSpecific + 276 frame #24: 0x036ede1b CoreFoundation
CFRunLoopRunInMode + 123frame 22095844: There's no reminder if you forget to unlock your watch #25: 0x02b757e3 GraphicsServices
GSEventRunModal + 88 frame #26: 0x02b75668 GraphicsServices
GSEventRun + 104frame 22094327: Mac OS X 10.10.4: Managing Gatekeeper's automated re-enable via a management profile #27: 0x00b57ffc UIKit
UIApplicationMain + 1211 frame #28: 0x00001fec RTEDemoApp
main(argc=1, argv=0xbffff208) + 92 at main.m:15At first glance I assume that you would want to modify _adjustForAutomaticKeyboardInfo:animated:lastAdjustment: to check if the UITableViewController's view is part of the view hierarchy of the inputView that triggered the inputView frame size change notification.
Product Version: 6.1.3
Created: 2013-05-08T11:13:39.055560
Originated: 2013-05-08T13:13:00
Open Radar Link: http://www.openradar.me/13836932
The text was updated successfully, but these errors were encountered: