Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot type using non-QWERTY keyboards on iOS

My iPhone app can't seem to use soft keyboards that doesn't use the US-like QWERTY layout. That is when I set the keyboard to French or Germany, even text fields cannot take in text and an error message No input manager class for input mode error is shown in the console (when debugged under Xcode). Switching to the Emoji keyboard also shows the same problem. But the problem doesn't occur on QWERTY keyboard layouts, like Dutch and Indonesian keyboards.

The all cases are consistent and reproducible both the device (iPhone 4) and the iPhone simulator. These are error messages in the Xcode's debugger console

When the keyboard is set to French:

No input manager class for input mode: fr_FR

When the keyboard is set to Germany:

No input manager class for input mode: de_DE

When the keyboard is set to Emoji:

No input manager class for input mode: emoji

My app's deployment target is iOS 3.1.3 (I'm still supporting 1st gen devices) but the development environment is Xcode 4.3.1 and iOS 5.1 Simulator. (I don't know whether this is relevant but just in case).

Anybody can help how to fix this?

Thanks in advance.

like image 470
adib Avatar asked Mar 17 '12 16:03

adib


2 Answers

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

I did this to be able to change info dictionary values at runtime (specifically, providing a non-shortened bundle display name to replace the shortened value used on the home screen).

The fix was to not return a copy of the info dictionary, but with some more reflection magic handle each key obtained from the dictionary:

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

like image 125
lhunath Avatar answered Oct 24 '22 14:10

lhunath


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

Anyway here is what I am talking about:

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

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

Hopefully this will help you!

like image 23
SimplyKiwi Avatar answered Oct 24 '22 14:10

SimplyKiwi