Как закрыть текстовую клавиатуру цифрами c на iOS после редактирования? - PullRequest
2 голосов
/ 04 апреля 2020

Я хотел бы отредактировать десятичное значение цифры c, например, 21,7, и позволить пользователю закрыть клавиатуру цифры c (iOS 13.3.1, iPhone Xr), когда закончите.

Я использую числовое поле для чисел c (TextField с ограничением TextArea.DECIMAL). Я НЕ установил параметр putClientProperty("iosHideToolbar", Boolean.TURE) для TextField. Однако опция «Готово» отсутствует, поэтому пользователь не может закрыть клавиатуру после ввода значения.

Я просмотрел документацию (https://www.codenameone.com/manual/components.html) и, как я понял, использование tf.putClientProperty("iosHideToolbar", Boolean.TRUE); скрыло бы панель инструментов, поэтому, поскольку я НЕ устанавливал свойство, я предположим, что панель инструментов и кнопка Готово должны быть доступны.

Любой совет, как получить кнопку Готово (или другие способы избавления от цифровой клавиатуры c)?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

В прослушивателе действий для текстового поля вы можете просто вызвать stopEditing() в текстовом поле. Для этой цели вы можете использовать стандартный слушатель действий или готовый слушатель.

0 голосов
/ 05 апреля 2020

Я хотел бы отредактировать десятичное значение цифры c, например, 21,7, и позволить пользователю закрыть клавиатуру цифры 1025 * (iOS 13.3.1, iPhone Xr), когда закончите.

Я использую числовое поле c (TextField с ограничением TextArea.DECIMAL). Я НЕ установил параметр putClientProperty("iosHideToolbar", Boolean.TURE) для TextField. Однако опция «Готово» отсутствует, поэтому пользователь не может закрыть клавиатуру после ввода значения.

Вы уверены?

Я попробовал следующий код на iOS 13 (iPhone X):

Form hi = new Form("Example", BoxLayout.y());
hi.add("Enter a decimal value:");
TextField textField = new TextField();
textField.setConstraint(TextArea.DECIMAL);
hi.add(textField);
hi.add(new Button("Submit"));
hi.show();

Результат:

enter image description here

Как видите, этот пример кода производит " Готово "кнопка на iOS. Итак, если ваше приложение не показывает его, возможно, причина проблемы в другом месте.

Я только что заметил, что не отображается кнопка Готово для многострочного TextField с обычным текстом

Я пытался:

Form hi = new Form("Example", BoxLayout.y());
hi.add("Enter a multiline text:");
TextArea textField = new TextArea("", 3, 80);
textField.setConstraint(TextArea.ANY);
hi.add(textField);
hi.add(new Button("Submit"));
hi.show();

Результат:

enter image description here

Также в этом случае есть Кнопка «Готово».

В настоящее время, насколько мне известно, кнопка "Готово" не отображается на панели инструментов виртуальной клавиатуры iOS, если она уже включена в саму клавиатуру, например, в случае универсального c TextField без «следующего» * ​​1041 *. Я имею в виду, как на следующем скриншоте (обратите внимание, что синяя клавиша «отлично» - это итальянский эквивалент «Готово») :

enter image description here

Итак, я не знаю, как вам помочь. Попробуйте обновить свой вопрос (или открыть новый), добавив отдельный тестовый пример, воспроизводящий вашу проблему.

...