International keyboard crashing the app on the device - ios

I have a problem when testing the app I wrote on the iPhone where I have set up an international keyboard.
The iPhone remembers the last input layout I used (i.e when I'm in messages and I'm using the hebrew keyboard, the next time I will use the keyboard in another app the hebrew layout will appear first) so when I'm running the app on the device and trying to input text into a textfield, the cursor appears but the keyboard doesn't, and any attempt to touch anywhere in the app causes a "Thread 1:EXC_BAD_ACCESS (code=1,address=0x14).
In addition, when the last layout I used is the english one, the app running perfectly even when I'm switching to the hebrew one.
I just noticed that it happens only with the "Name Phone Pad" keyboard, is there anyway to use this keyboard with international one?
Thanks!

My best guess is that you have a delegate that's intercepting key strokes. I reccomend you either specify the first responder per textfield and see if that works or else localize the file for english (or whatever language) only.

Related

UIKeyboardType.numberPad is always english

I'm trying to make my app accessible with Voice Over. On one of the screens I have a text field for entering number. Nothing special, just default UITextField with keyboardType set to UIKeyboardType.numberPad. Voice Over is actually working well and read all selected keyboard buttons. The problem is that keyboard is always english (with english letters under digits). And when you switch iPhone language to something other than english, Voice Over mixes two languages:
When you select digit on keyboard with single tap, Voice Over read it in current iPhone language (russian in my case)
When you double tap (to enter digit into text field), Voice Over always read it in english
What I changed in setings:
Set iPhone language to russian
Set region to russia (not sure if it matters at all)
In "General -> Keyboard -> keyboards" moved russian keyboard to the top of the list
But nothing helped. UIKeyboardType.numberPad and UIKeyboardType.decimalPad are always english (UIKeyboardType.default is russian as it should be)
Am I missing something?
I also tried to change keyboard language programmatically - iPhone: Change Keyboard language programmatically. But that didn't work either.
It's confusing for sure, but it sounds like your app is not actually localized for Russian. Try localizing it and see if that improves things.

How can I force/setup the right keyboard in the iOS Simulator during tests?

The app has a Chinese localization and runs with Scheme options (see image).
When I hit the text field, I would expect a Chinese keyboard and not a German one.
I only see German, English and Emoji keyboards.
Is there any way to tell the Simulator which keyboard should be used by default?
Unfortunately, this is not automatic. You should manually add a Chinese keyboard and make it the default.
Navigate to Settings/Keyboards, add the Chinese keyboard under Keyboards and drag it to the first place of the list after clicking on Edit.

IOS 7: Two issues with MFMailComposeViewController

I used the MFMailComposeViewController a lot in the past but for some reason now there is a very strange behaviour...that creates lots of problem in the usability of the interface....
Issue #1: fields are not editable or the focus seems wrongly positioned.
I create an email to be sent with an attachment (text or pdf) and each time the controller starts the "cc/bcc/from" fields overlap and are not editable.
if i tap on the "to:" field sometimes the keyboards appears other times it doesn't ...
The "to:"field is the only one editable (in blue) but clearly the focus is not right because sometimes i can edit the email address, other times, it becomes a completely blue box (no text is visible), etc.etc.
At times the "cc:"field is expanded on a row but the tap position is not exactly right and no editing is possible.
Issue #2: the keyboards loads fast the first time, but if i close the composer and open it again, this time the keyboard takes at least 5 seconds to show up.
I tested the process on both iPad2 with IOS7 and in debug mode on Xcode 5.1 but the behaviour is always the same.
What i tried so far:
set the mail composer as first responder, each time i open it: not working
create temporary uitextfields to "pre-load" the keyboard: not working
change the modal appearance from full screen to form sheets/pagesheet/etc: not working
it seems to be memory related,at least the keyboard part, because at the beginning the App uses ~16 MBytes and the second time slightly higher (~26 Mbytes), but not big changes.
The process flow for both issues:
You tap a send button, the mail composer opens, tap in the body and the keyboard appears.(still the email fields overlaps and not editable).
You close it, you click again the send button, you do exactly the same moves but this time the keyboard does not show up , the "cc:/bcc:" fields are indented wrongly (on the left), nothing can be edited.
I have already gone through several answers/questions on this forum but nothing seems to work and this thing is really driving me mad...no more than 4 line of code (taken from Apple docs) and it does not work...
I had the same issue on ios6. (I've not tested this on ios7) Try these two methods before showing the MFMailComposeViewController,
[self.parentViewController resignFirstResponder];
And this one on the mailComposer,
[self becomeFirstResponder];
Note - This answer is for your issue #1

Keyboard resize event in iOS 5 (Chinese keyboard bug)?

As of iOS 5, the keyboard can now be a variable height based on the input language. Specifically the Chinese language now includes an autocomplete section above the keyboard, very similar to what you see in Android. That autocomplete section increases the measured height of the keyboard.
Is there an even to which one may subscribe and/or receive notifications about when the keyboard changes dimensions as a result of the user clicking the "world" key? Note that this is different from getting the notification about the keyboard coming up (keyboardWillShow). In this case, they keyboard is already up, it's dimensions are simply changing as a result of user interaction.
Thanks!
When the input method changed, although the keyboard is already there, iOS will still send notification UIKeyboardDidShowNotification, so, register this notification, and get the location and frame change through the userInfo within notification with key UIKeyboardFrameEndUserInfoKey, then you can relayout your elements depend on the keyboard size.
more detail information, read this blog post:
(English) How to handle the keyboard frame change when input Chinese in iOS 5
(Chinese) 如何处理iOS 5中文输入法下keyboard的frame尺寸变化

BlackBerry issue with Textfields in OS6

I'm developing a BlackBerry app and using J2ME Polish to do the styling. So, I'm using TextFields with styling from Polish to get user input.
The TextFields work fine in OS versions other than 6. But when testing on devices running OS 6, the Textfields break.
Basically in other versions of the OS, when focus is on a TextField then the left and right buttons move the cursor around in the TextField and up and down moves focus to the next/previous item. However, in OS6 up and down instead navigate to the beginning and end of the TextField respectively and focus gets stuck so I'm not able to move focus to the next item.
As a workaround I tried to capture the down button using handleKeyReleased, but when focus is on the TextField the down button isn't even being captured.
Does anyone know of any other way to solve this?
Issue resolved by explicitly using the BlackBerry JDE version 6 to build the app.

Resources