Cannot type using non-QWERTY keyboards on iOS - iphone

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.

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

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!

Related

How to enable Emoji 2 from iOS6 in iOS5 devices

I've made an Emoji enabling App once, it was incredibly easy:
Get the dictionary from /User/Library/Preferences/com.apple.Preferences.plist, and set the BOOL value of the key: "KeyboardEmojiEverywhere" to true.
However, in iOS6 a new set of emoticons were released, named 'Emoji 2' and supposedly they can be unlocked for pre iOS6 devices too, specifically, from iOS5.1.
But I can't find anywhere if there's another key in the same plist that you should set to TRUE to unlock the new set.
So my question is, can these new Emoji 2 be unlocked using xCode for iOS5.1? And if yes, how?
No they can't. I created "Emoji 2", I coined the term when the new unicode characters were created in black and white. I made the app wand was first to market and out of no where Apple redesigned all of the new unicode characters in color and my app exploded in popularity. Many knock-offs came very shortly after but my app and the other apps never unlocked the keyboard, they only indexed the unicode characters (some, including mine, allowed users to access them on a "custom" keyboard of sorts via the romaji keyboard and contact editing).
Source: CEO Apps4Life, LLC.

(Codenameone) Blackberry TextField Missing Border When Focusing

I want to ask why the border of TextField in Blackberry (CodenameOne) always missing when focusing? I am using Native Themes and I have try with theme builder to change the attribute (TextField Background, border etc..) but still missing, does anyone know how to make border on the TextField still appear when you type something in the TextField? Thanks for your help
PS: This does not happen on LWUIT Thorsten Blackberry 1.4
If I recall correctly Thorsten's port doesn't use in place editing for input.
During input the native text field border is used, there is very limited control on the native input.
I have used LWUIT for some years in BlackBerry and yesterday I was facing the same problem. What I did:
Make my own version 1.5 using the things related to TextField and focus from 1.4 (BlackBerryTouchImplementation.java and BlackBerryTouchSupport.java and some little changes).
I did it because I found 2 problems more:
1.The textField were ignoring addDataChangeListener.
2.With constraints PASSWORD | NUMERIC in a TextField, the cursor doesnt move from the first place, I mean, you can enter 8 digit (qwer1234 because it's ignoring the constraints, input mode, input mode order) and the cursor is in the left side of "q".
I know that Shai Almog probably dont like it but let me tell you that I have made test on these BlackBerry devices: 9330, 9550, 9700 and all is ok.
I have been developing a big one app for around 4 months for Spanish language and the quality team have not found big problems.

iPhone: Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using Default?

I'm writing an iPhone app which uses a keypad that includes a decimal point. Because this is not standard in the Interface Builder i have assigned this to a text field in the viewDidLoad method like this:
[self.TextField_PrintedRepeat setKeyboardType:UIKeyboardTypeDecimalPad];
When i run this app, tap the text field and expose the keypad, i get this entered into the console log:
Can't find keyplane that supports type
8 for keyboard
iPhone-Portrait-DecimalPad; using
Default
Have you any ideas what this means?
Do i need to worry?
How can i stop this console message?
EDIT: i'm using iOS 4.2.1
What version OS are you running against? the DecimalPad keyboard type was only introduced in 4.1, so if you are planning on allowing prior versions you will get this warning, and it will revert to the normal keyboard type. If you don't want this happening, check for the existence of UIKeyboardTypeDecimalPad before doing the call.

Is it possible to detect the current keyboard input method on the iPhone?

I want to know the current input method the user is typing in such as En (english), German, Chinese, etc... Maybe keyboard type is what I am after, but documentation seems limited on this subject from Apple doc.
Thank you!
Managing the iPhone Keyboard
http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
In iOS4.2 there is a new class UITextInputMode that is exactly what you want.
(Oops, this is still under NDA. If you have no iOS dev center account please don't read this answer ;) )
You can query current mode (English, French, Japanese, etc) or get notifications when it changes (the keyboard language changes)
UITextInputMode documentation (requires log in)
currentInputMode is deprecated since iOS7, be careful.
currentInputMode
Returns an instance representing the current text-input mode. (Deprecated in iOS 7.0.)
here is a tutorial
http://www.switchonthecode.com/tutorials/a-simple-localization-example-for-the-iphone
NSLocale* curentLocale = [NSLocale currentLocale];

Is it possible to add info or help text to an iPhone settings bundle?

Several of the Apple-provided apps have informational/help text in their settings. For example, the Keyboard settings screen includes, under the “.” shortcut toggle, the help text "Double tapping the space bar will...".
I know I can do this in my app by adding a group footer, but is it possible to do this in the settings app by adding a field to the plist file in my Settings.bundle?
According to recently changed Apple document, a FooterText key is available in PSGroupSpecifier dictionary, which is only available in iOS 4.0 or later.
Reference:
https://developer.apple.com/library/content/documentation/PreferenceSettings/Conceptual/SettingsApplicationSchemaReference/Articles/PSGroupSpecifier.html
The way I do it, and the way I have seen other third parties apps do it is just to use an informative Title as a PSGroupSpecifier
I have only seen the native Apple apps do it in this other, slightly nicer way. I expect the ability is buried deep in the undocumented regions of the SDK.
Using FooterText key in PSGroupSpecifier is what you need to use. And it is documented as xesique already said.
Note that the "FooterText" key is not built into the pop-up menu of the Settings Scheme / plist editor that is part of Xcode. When you select a "Group" and type a keyboard return or press the plus icon you are presented with a choice of either "New item"," "Type" of "Title". You are required to manually edit this key value. Then the text that you enter as the associated string will appear as grey text (rather than the black text used for the Groups members) and which maintains its upper / lowercase.