-->

How can one enable keyboard like in iMessages/FB M

2020-02-04 22:17发布

问题:

In my project I have textViews with associated input keyboard which has the strange look in landscape mode on iPhone 6 Plus under iOS8 as shown below:

It seems that it has different orientation internally sometimes.

But in some cases keyboard rotates fine but still has white gaps during orientation change and other visible bugs:

and finally we have ordinary expanded landscape view:

The question is how one can get the extended keyboard without bugs as follows:

回答1:

The very important thing to do while migrating projects from xCode5.1 (and earlier) to xCode6 is to modify Info.plist file by adding Launch screen interface file base name key

You can event set it to empty string (usually it is a name of the Launch xib). Without this simply line one will have all the problems presented at screenshots above.

The absence of the Launch screen interface file base name results in working in compatibility mode with standard resolution of older devices. Let's run the following code in the project in each case

NSLog(@"bounds = %@", NSStringFromCGRect(UIScreen.mainScreen.bounds));

With Launch xib one gets

bounds = {{0, 0}, {414, 736}} // for iPhone 6Plus

bounds = {{0, 0}, {375, 667}} // for iPhone 6

Without it one gets

bounds = {{0, 0}, {320, 568}}

So, the last case indeed is the compatibility mode.



回答2:

I found the same kind of problem. When I was allowing only 1 of my viewcontroller to rotate.As soon as I was going inside the screen I was enabling the screen rotation and while coming out of the screen I was disabling it.Every thing was working fine except the keyboard UI.So I searched many forums for a solution but didn't find out anything useful. Anyhow, I have tried to understand the pattern and found out that I was using viewDidDisappear instead of viewWillDisappear.

Its important to disable the orientation before it goes another screen.Hope this helps.