this method will fail to input the correct char if the phone is in landscape mode.
Can't we just find the char on the keyboard and move to it?