keyboard displays in simulator on one machine, and not on another - ios

So I just switched the keyboard type for the three textViews I have on one of my viewControllers to use the Number Pad keyboard. I also added a library (not a cocoapod) for a custom ScrollView object that I added to the view; the Scrollview makes all subviews scroll up/down to respond to instances of the keyboard being displayed onscreen.
It displays fine when I run the code on my machine's simulators (simulators for iPhones 5s and 6.) But when the other guy on the project tries it, the keyboard shows up briefly on the 5s simulator before hiding. On his simulator for the 6, the keyboard doesn't appear at all.
Could it be the custom Scrollview screwing with the UI? I'll post a link to the repo..I'd post some code but aside from this object, I can't think of anything else that could be responsible.
https://github.com/michaeltyson/TPKeyboardAvoiding

If you tap into a textfield and the keyboard does not appear, hit command+k on your physical keyboard to bring up the simulator one. You will still be able to type with your physical keyboard but the simulator one will come up as well.

Try command+shift+k. That turns on and off the simulated hardware keyboard. I have had it fix this kind of issue before, even when I didn't realize I had it turned on.

Related

What can cause segmented Picker controls to "pop" rather than slide to the new selection, only on actual device?

My project has several Picker controls with .pickerStyle(SegmentedPickerStyle()). Something in the project (or, perhaps, on my iPad) has evidently changed, and now all of the pickers "pop" when selected, rather than the selection highlight sliding to the new selection -- but only on the actual device. In the simulator, the selection slides as expected. Even a plain vanilla picker with code straight out of Hacking With Swift exhibits this behavior on my device, so it seems that the issue is somewhere that has global effect, rather than in the code for an individual picker itself. (That "vanilla" code, along with all my other Picker controls, look normal in the Simulator.)
Other UI elements animate normally on the device, so it isn't a blanket "turn off all animations" setting, but the various segmented pickers are all affected, even though they reside in different parts of the project. (And, yes, the project is way, way too big to post all of the code -- but "the code" works as expected in the simulator.)
What are the sorts of things -- in a project or in a device's settings -- that can globally cause all segmented Pickers in a project to stop animating (though only on the device itself)?
What I'm seeing on the iPad:
What I'm seeing on the Simulator (i.e. what I expect to see):
I recognized the simulator vs device distinction when I created a Simulator to exactly duplicate my iPad (Air gen 3, iOS 14.2), and the simulator shows the picker sliding (i.e. the bottom screen capture). But the device shows it popping (the top screencap). This behavior persists after deleting the app on the iPad, rebooting the iPad, and installing the app again. So perhaps the 'guilty' setting is on the device rather than in the project???
What settings, in the project or the device, could cause this change in behavior?
Possibly related:
Broken animations in iOS 14
Not SwiftUI, but device vs simulator discussion
Example of "OK on simulator, not OK on device" (though with different specific things going on)
Another "ran on simulator, not on device" issue... does the Picker use the same problematic Spring animation???
(( And yes, there are plenty of cases where the simulator performs poorly & the device performs well... that's understandable. This case is one where things are the other way around: what works on the simulator does NOT work as advertised on the device. ))
This is caused by the Reduce Motion setting on your physical device. This can be found under Settings -> Accessibility -> Motion.
When reduced motion is disabled, the segmented picker has a slide animation.
When reduced motion is enabled, the segmented picker does not have the slide animation.

UIKeyboardWillChangeFrameNotification not always called

When developing an app for iOS, I've encountered a strange problem.
To be precise, it's about a chat app. Inside the chat view controller, the message input box should stick to the keyboard when it appears. I've got that one covered with the UIKeyboardWillChangeFrameNotification.
However, the problem is that this notification is not called when I change from the default keyboard to the emoji keyboard, which is slightly taller, the notification is not called (I'm leading both UIKeyboardWillChangeFrameNotification and UIKeyboardDidChangeFrameNotification to the same selector, none of them is called, I've tested it by doing a NSLog and setting a breakpoint). That results in the keyboard overlapping the message box. I made some screenshots to visualize the problem.
Default keyboard
Emoji keyboard
I've tested it on an iPhone X and on the iPhone 8 Plus Simulator, but there, everything's fine because the auto-completion bar makes up the difference between the two keyboards.
Am I implementing the wrong notification? How should I solve this problem?
Okay, it seems like this was an actual bug in iOS 11. It seems to be fixed in iOS 11.2.6.

Xcode 7.3.1 view controller in storyboard disappeared

I'm making an iOS app using Bluetooth. The app is supposed to show a list of Bluetooth device when the button "Bluetooth" is clicked. The list is a tableView shown as a popOver view controller.
When I turn on my computer the next day, the popOver view controller disappeared, but you can still see it in the list on the left side(Bluetooth device scene), and it is there when running it in simulator. But it is not visible or clickable in the interface builder.
I did nothing but closed my laptop, and opened it the next day. It's not that I'm using the wrong w/h size. I've tried that. Anyone know what's going on? Thanks a lot.
Screen shot of my storyboard

Decimal Pad keyboard not working properly in iOS 8

I'm developing an iOS 8 app in Xcode 6.0.1 and running it on my iPhone 5 (which has iOS 8.0.2 on it). In my app, I'm using a UITextField with the Decimal Pad keyboard type (I use the Xcode storyboard to set the keyboard type). Everything worked as expected when I was using iOS 7 and Xcode 5. However, after updating my software, I'm having this problem:
Every time I click on the UITextField, the Decimal Pad keyboard pops up normally (although the decimal button in the lower left corner is a half the size it should be), but then the UITextField won't animate upwards above the keyboard (like it used to) and the following message gets printed out on the console (however, my app does not crash):
Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 1425143906_Portrait_iPhone-Simple-Pad_Default
A number of "solutions" on the internet suggest going to iOS Simulator > Hardware > Keyboards and toggling an option in there. However, I'm not running my app on a simulator; I'm running it on my phone, so this solution does not work.
Thanks for the help!
Turns out, the issue with the UITextField animation was not due to the keyboard problem. I needed to set up constraints in Xcode's storyboard for the UITextField, make outlets for them in my view controller, and use the constraints to programmatically move the UITextField. I have that working now. However, the error message still pops up when the decimal pad comes up. I guess I can just ignore it until Apple fixes it.
EDIT:
I reported the bug to Apple.

Split keyboard moving offscreen

I have a very strange bug that I can't fix. It is related to UITextField and Split Keyboard. When any textfield (say Email textfield) becomes a first responder then keyboard appears just fine. But when you select another textfield (say password) then keyboard is moving downwards and below the screen. If you touch again any other input field then keyboard disappears forever. I cannot change the frame of keyboard so I can do nothing about it. If you know about this issue and know how to avoid it please tell me. I'm using iPad 4th gen iOS 6, this bug also happens on both iOS Simulators ios 5.1 and ios 6.1.
I have also tried empty UIViewController with just UITextfields on it.

Resources