编辑后如何在iOS上关闭TextField数字键盘?

时间:2020-04-04 16:46:42

标签: codenameone

我想编辑一个数字十进制值(如21.7),并让用户在完成后关闭数字键盘(iOS 13.3.1,iPhone Xr)。

我正在使用数字文本字段(约束为TextField的{​​{1}})。我尚未为TextField设置选项TextArea.DECIMAL。但是,没有键盘完成选项,因此用户在输入值后无法关闭键盘。

我已经阅读了文档(https://www.codenameone.com/manual/components.html),据我所知,使用putClientProperty("iosHideToolbar", Boolean.TURE)会隐藏工具栏,因此由于我没有设置属性,因此我假设工具栏和完成按钮应该可用。

关于如何获得“完成”按钮(或其他摆脱数字键盘的方式)的建议吗?

2 个答案:

答案 0 :(得分:1)

在文本字段的动作侦听器中,您只需在文本字段上调用stopEditing()。为此,您可以使用标准动作侦听器或完成侦听器。

答案 1 :(得分:0)

我想编辑一个数字十进制值(如21.7)并启用 用户完成后关闭数字键盘(iOS 13.3.1,iPhone Xr)。

我正在使用带有约束的数字文本字段(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虚拟键盘工具栏中的“完成”按钮已经包含在键盘本身中,那么该按钮就不会显示出来,例如,在通用TextField中没有“下一个” TextField。我的意思是像下面的屏幕截图(注意,蓝色键“ fine”与意大利语中的“ Done”等效)

enter image description here

所以,我不知道该如何帮助您。尝试更新您的问题(或尝试打开一个新问题),添加一个自动封闭的测试用例,以重现您的问题。