我有一个跨平台的应用程序。我有一个具有多个TextField的表单。当用户触摸文本字段之外时,我想隐藏键盘,因为它覆盖了发送数据的按钮。
我该怎么办?
在我的.html文件中,我有:
<ScrollView>
<GridLayout ios:style="margin-top:50">
<StackLayout class="form">
<!-- Some TextView -->
</StackLayout>
</GridLayout>
</ScrollView>
编辑
这是显示错误的Playground。
答案 0 :(得分:2)
在最新版本的NS 6.0+中隐藏键盘的正确方法是直接访问上下文。
import { isIOS, isAndroid } from 'tns-core-modules/platform';
import * as utils from 'tns-core-modules/utils/utils';
declare const UIApplication;
dismissKeyboard() {
if (isIOS) {
UIApplication.sharedApplication.keyWindow.endEditing(true);
}
if (isAndroid) {
utils.ad.dismissSoftInput();
}
}
答案 1 :(得分:0)
向您的布局添加tap
侦听器,并使用来隐藏键盘
iOS
import * as utils from "tns-core-modules/utils/utils";
utils.ios
.getter(UIApplication, UIApplication.sharedApplication)
.keyWindow
.endEditing(true);
Android
utils.ad.dismissSoftInput();
修改
如果您的dismissSoftInput()
中只有一个TextField
,则可以简单地在TextField
上调用Page
方法。如果您在TextField
上有多个Page
,并且不确定实际上是哪个焦点,那么上面的代码会有所帮助。
答案 2 :(得分:0)
科特琳:
new spec
还将XML添加到父布局'focusableInTouchMode = true'
答案 3 :(得分:0)
在Android
中,隐藏键盘:
public void hideSoftKeyboard(Activity mActivity) {
InputMethodManager inputManager = (InputMethodManager) mActivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), 0);
}