Неанглийские символы в элементе управления TextField в Gluon Mobile под iOS - PullRequest
0 голосов
/ 19 марта 2019

Мне нужно ввести неанглийские (в частности, кириллицу) символы в элементе управления TextField в моем приложении. Когда я нажимаю на элемент управления, появляется виртуальная клавиатура, и я ожидаю увидеть клавишу «глобус» для переключения языка. На Android работает нормально. Но в iOS клавиатура отображается без этой клавиши переключения языка, поэтому изменить язык ввода невозможно. Сначала я подумал, что это проблема со шрифтом, но я могу вызвать TextField.setText() в своем коде с неанглоязычной строкой в ​​качестве аргумента, и он работает просто отлично: я вижу, что эти символы в поле ввода отображаются правильно. Однако в этом случае, когда элемент управления TextField получает фокус, я вижу исключение в консоли:

[JVDBG] got a runtime exception, but we ignore this.
java.lang.RuntimeException: ubrk_open failed: U_MISSING_RESOURCE_ERROR
at libcore.icu.NativeBreakIterator.getCharacterInstanceImpl(Native Method)
at libcore.icu.NativeBreakIterator.getCharacterInstance(NativeBreakIterator.java:145)
at java.text.BreakIterator.getCharacterInstance(BreakIterator.java:277)
at java.text.BreakIterator.getCharacterInstance(BreakIterator.java:265)
at com.sun.javafx.scene.control.skin.Utils.getHitInsertionIndex(Utils.java:838)
at com.sun.javafx.scene.control.behavior.TextFieldBehavior.mousePressed(TextFieldBehavior.java:259)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:95)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3761)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3489)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2498)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275)
at java.security.AccessController.doPrivileged(AccessController.java:52)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:388)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$2.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:391)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at org.robovm.apple.uikit.UIApplication.main(Native Method)
at org.robovm.apple.uikit.UIApplication.main(UIApplication.java:428)
at org.javafxports.jfxmobile.ios.BasicLauncher.main(BasicLauncher.java:150)

В моем .plist я настроил клавиши CFBundleDevelopmentRegion и CFBundleLocalizations, но это не помогает.

Есть идеи, как включить функцию переключения языка ввода виртуальной клавиатуры в iOS? Может, чего-то не хватает в .plist?

...