2016-01-26 5 views
0

Есть ли способ превратить имя клавиатуры в UIKeyboardType или какой-либо другой тип, который можно использовать в качестве клавиатуры?iOS - вызов конкретной клавиатуры из NSUserDefaults

Вот что у меня есть. Если предположить, что устройство имеет определенный язык клавиатуры установлен (скажем, японский), я могу проверить NSUserDefaults и получить список устройств, например:

NSArray *arrayOfKeyboardNames = [defaults arrayForKey:@"AppleKeyboards"]; 

Это, в моем случае, возвращает 4 названия клавиатуры:

"[email protected]=US;sw=QWERTY", 
"[email protected]=Emoji", 
"[email protected]=Kana;hw=US", 
"[email protected]=Russian" 

И тогда я хочу установить клавиатуру [email protected]=Kana;hw=US в качестве типа ввода UITextField. В идеале это будет сделано для всего приложения, а не только для поля, но пока это может сработать.

Проблема заключается в том, что UITextField принимает только перечисление как тип клавиатуры, и это явно не значение перечисления.

Есть ли способ сделать это? Конечным результатом должна быть японская клавиатура, когда пользователь прикасается к UITextField.

ответ

2

Нет общедоступного API, который позволяет вам переключаться с клавиатуры. Он полностью находится под контролем пользователя, нажимая маленький ключ глобуса на клавиатуре.

Класс UITextInputMode предоставляет возможность увидеть, какие клавиатуры доступны, но нет API для его настройки.

+0

Но если вы знаете, что на устройстве установлена ​​клавиатура, нет ли способа назвать эту клавиатуру? Я знаю, что это не общедоступный API и в любом случае может быть отклонен. – TooManyEduardos

+0

Я понятия не имею, есть ли частный API для этого. Если есть и вы его используете, ваше приложение будет отклонено. – rmaddy

+0

Хорошо, спасибо. – TooManyEduardos