Fixes iOS 11 issue #9
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We have a set of signup screens that are pushed one after another.
Everything works fine if we call
becomeFirstResponder()
inviewDidAppear
the
keyboardWillChangeFrame
is called and everything works as expected.The thing is calling
becomeFirstResponder
inviewDidAppear
animates the keyboard.If we want to have the keyboard stay in position (already shown) in the screens,
we can call
becomeFirstResponder
in viewDidLoad.In iOS 11, the issue is that the keyboard notifications are not called if the keyboard is already on screen
so we end up with the button under the keyboard.
The underlying reason is that
keyboardWillChangeFrame
is not called on IOS11 if the keyboard stays shown between controllers, which seems quite logical actually.The fix stores the previous keyboard height and sets in back up when setting up a new controller, only if the device is running iOS 11 :)