隐藏Android键盘在javascript输入字段模糊
Hide Android keyboard in Nativescript on input field blur
我有一个注册表单,其中包含几个TextFields和其他输入。当用户点击其中一个字段时,Android软键盘将总是按预期显示。如果我在场外点击,虽然键盘不会隐藏。是否有一种方法可以捕获此事件,以便当用户在任何输入之外点击时,我可以隐藏键盘?
看起来下面的操作允许我隐藏键盘
var pageContainer = page.getViewById('registration-container');
if(pageContainer.android) {
pageContainer.android.clearFocus();
}
但是我不确定如何捕获模糊表单输入的每个tap事件。我甚至不确定这在Android上是否可行。
你可以把监听器放在父视图上,这样当你点击它的时候(在textfield之外的任何地方),它会清除显示键盘的textfield的焦点。你这样做的方式是清除容器的焦点,而它应该恰好是textfield:
在XML:<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="onNavigatingTo">
<StackLayout tap="clearTextfieldFocus">
<Label text="Tap the button" class="title"/>
<Label text="{{ message }}" class="message" textWrap="true"/>
<TextField id="myTextfield" hint="Type here..."/>
</StackLayout>
</Page>
In page.js
:
function clearTextfieldFocus(args) {
var layout = args.object;
var myTextfield = layout.getViewById("myTextfield");
myTextfield.android.clearFocus();
}
exports.clearTextfieldFocus = clearTextfieldFocus;
p/s:文本字段上的监听器将覆盖父监听器,所以点击文本字段仍然聚焦并显示键盘
我觉得这样更优雅:
import * as utils from "tns-core-modules/utils/utils";
import { isIOS, isAndroid } from "tns-core-modules/platform";
import { frame } from "tns-core-modules/ui/frame";
export function hideKeyboard() {
if (isIOS) {
frame.topmost().nativeView.endEditing(true);
}
if (isAndroid) {
utils.ad.dismissSoftInput();
}
}
我就是这么做的:
event.object.dismissSoftInput()
在Vue的情况下,你最终得到:
<TextView v-model="textData"
@blur="$event.object.dismissSoftInput()"
editable="true"/>
文档可以在这里找到
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在HTML输入字段中添加不可删除的后缀
- 互斥单选按钮和相应的输入字段
- 在IE9中的输入字段中输入焦点最近按钮
- 选中单选框时将属性添加到输入字段
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 输入字段将't获取更新的值
- 如何选择多个输入字段并删除所需的属性
- 输入字段,只接受0到12之间的数字
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用jquery将输入字段转换为文本
- Model中的Typeahead返回空值以形成输入字段
- 如何从查询字符串中的输入字段发回文本
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 将值传递给jquery创建的输入字段