You cannot type using non-QWERTY keyboards on iOS

My iPhone app cannot use soft keyboards that do not use the QWERTY format similar to the US. That is, when I install the keyboard in French or German, even text fields cannot receive text, and the error message No input manager class for input mode displayed on the console (when debugging under Xcode). Switching to the Emoji keyboard also shows the same problem. But the problem does not occur on QWERTY keyboard layouts, for example, on Dutch and Indonesian keyboards.

All cases are compatible and playable by both the device (iPhone 4) and the iPhone simulator. These are error messages in the Xcode debugger console.

When the keyboard is installed in French:

No input manager class for input mode: fr_FR

When the keyboard is installed in Germany:

No input manager class for input mode: de_DE

When the keyboard is installed on Emoji:

No input manager class for input mode: emoji

The goal of my application deployment is iOS 3.1.3 (I still support first-generation devices), but the development environment is Xcode 4.3.1 and iOS 5.1 Simulator. (I do not know, this is true, but just in case).

Can anyone help how to fix this?

Thanks in advance.

+6
source share
2 answers

In my case, this was caused by my swizzling -[NSBundle infoDictionary] and returning a copy of the original dictionary.

I did this in order to be able to change the values โ€‹โ€‹of the information dictionary at runtime (in particular, providing an unconfigured display name for the bundle to replace the abbreviated value used on the main screen).

There was no fix, so as not to return a copy of the dictionary of information, but with the help of some additional magic of reflection of each key obtained from the dictionary:

https://github.com/Lyndir/Pearl/blob/master/Pearl/NSBundle%2BPearlMutableInfo.m

+2
source

Not sure if this answer will help you, but I found it at this link: http://code.google.com/p/networkpx/wiki/Creating_Keyboard_Bundles

Anyway, here's what I say:

Like UIKeyboardLayoutClass, this field can also be attributed using the syntax "= xxx". You can also write your own class name class input manager.

If this field is missing, input managers will not be used.

Hope this helps you!

+1
source

Source: https://habr.com/ru/post/910992/


All Articles