iOS and Android Japanese Input not showing candidate list


#1

Hi,
I’m developing a game for the japanese market and recently I was testing text input, I’m encountering some problem.
I’m testing japanese “kana” input. While testing on Windows it works as expected, I don’t see a candidate list but I can scroll though candidates using arrow keys and everything is fine.
While testing on both iOS and Android (I get the same behaviour on both platforms), as I type, the keyboard immediately outputs one character at the time and doesn’t go in composition mode.
I’d expect to get a SDL_TEXTEDITING until the user confirms the input, but I only get the input of the first button pressed. No candidates are ever shown on the keyboard as if the user confirmed pressed “enter” after every key character.
If I type in a system textbox (in another app) the keyboard shows candidates etc…
This behaviour is identical both on iOS kana keyboard and Google Japanese keyboard.
Does anybody know what can cause this?

thank you for your time

ciao
Alberto


#2

Update, I fixed the problem on Android.

SDLActivity.onCreateInputConnection was specifying InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
I changed it to InputType.TYPE_TEXT_VARIATION_NORMAL everything started to show up correctly.

now the question is, what about iOS?

ciao
Alberto


#3

Update, I did some research and seems that shouldChangeCharactersInRange must return YES to have the suggestion list being populated in a Japanese keyboard however SDL’s code always returns NO. The problem is that I’m don’t really understand SDL’s code to come out with a solution by myself.

Any idea?

ciao
Alberto


#4

Update, after a more in depth analysis of SDL’s UIKit text input code, I arrived to the conclusion that text input for iOS is only partially implemented, even western input is only working “so so” as it seems to ignore arrow keys and similar special characters.
There is no code that can generate SDL_TEXTEDITING events so any keyboard that requires composition/suggestions is not going to work correctly.

Is there anybody working on text input on iOS?

ciao
Alberto


#5

While investigating an old version of TIC-80 for iOS on my iPad, I found that indeed, SDL’s UIKit support is limited to ASCII characters. I began improving on this, including support for external keyboards (of any kind, Bluetooth, USB, and Smart Keyboard included). I can’t promise I’ll produce something that can be merged back to SDL’s main repo as this is mostly experimental right now, but we’ll see. I really want to get TIC-80 running well on iOS, though.