Я создаю функцию пользовательского предложения / автокоррекции в приложении iOS. Он должен обнаружить случайные смежные нажатия клавиш и сравнить его со списком известных слов, чтобы предложить слово, которое, по его мнению, пользователь хотел напечатать.
Например, если список пользовательских слов содержит cat
, dog
, monkey
, и пользователь вводит cst
, приложение может определить, что наиболее вероятное слово было cat
(поскольку s
находится рядом с клавишей a
)
Это будет работать на стандартной QWERTY-клавиатуре , но что произойдет, если пользователь использует клавиатуру AZERTY?
Чтобы автозамена / предложить работать надежно, приложение должно быть в состоянии обнаружить используемую раскладку клавиатуры.
В iOS можно получить UITextInputMode
объект из UITextField
. Этот объект имеет свойство primaryLanguage
(string), которое будет отображать локаль (например, en-GB
), но в ней недостаточно зернистости, чтобы различать guish между English (Australia) QWERTY
и English (Australia) AZERTY
. В обоих случаях primaryLanguage
- это en-AU
.
Можно ли определить раскладку клавиатуры в iOS?