Custom keyboard isn't visible when long pressing Globe key

SETUP: iPhone X, System Keyboard only (no Emoji keyboard), plus a Custom keyboard.


I have written a custom keyboard extension. When I launch iNotes on an iPhone X I get the Globe key just fine. I can switch between mine and the system keyboard.


When I launch another app (an Objective-C app that I wrote), there is no Globe key. When I add back the Emoji keyboard, I get the Globe key. However, when I tap or long-press the Globe -- my keyboard is not present! I only see the System and Emoji keyboards.


It is almost as if my Obj-C app is preventing 3rdparty keyboards. But I know it is not, because when it was written Apple only allowed it's own keyboard. 🙂


What can I look for in settings or Obj-C code to figure out why my custom keyboard isn't "visible" in my app?


Thanks,


Allen

Replies

Here is what I found out. Say I have three UITextFields called: 'First Name', 'Last Name', and 'Password'. Password is set to 'Secure Text Entry'.


When I only have one System keyboard and one third-party keyboard:

- When I tap 'First Name', I get the System keyboard with a Globe. And long-pressing the Globe shows my third-party keyboard.

- When I tap 'Last Name', the Globe disappears from the System keyboard.

- When I tap 'Password', the Globe remains gone from the System keyboard (expected behavior).


When I add a second System keyboard (say Emoji), I get a Globe key on the keyboard for 'First Name', and 'Last Name', and not 'Password' (which is expected). However what isn't expected:

- When I tap 'First Name' and long-press the Globe - I get system, emoji, and third-party keyboards.

- When I tap 'Last Name' and long press the Globe - I only get system and emoji.


By setting 'Password' UITextField's property of 'Secure Text Entry' to YES, third-party keyboards will not be shown by default and can also not be toggled to. I get that.


But it is almost as-if the UITextField ('Last Name') before a 'Secure Text Entry' UITextField ('Password') is also somehow affected by 'Secure Text Entry' setting for 'Password'. I don't get that.


Can someone help me understand? Or is this a bug?


Thanks,


Allen