如何在Textfield外触摸后隐藏键盘



我有一个跨平台应用。我的表格具有多个Textfield。当用户触摸TextField之外时,我想隐藏键盘,因为它涵盖了发送数据的按钮。

我该怎么做?

在我的.html文件中我有:

<ScrollView>
  <GridLayout ios:style="margin-top:50">
    <StackLayout class="form">
      <!-- Some TextView -->
    </StackLayout>
  </GridLayout>
</ScrollView>

编辑

这是一个显示错误的操场。

在最新版本的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();
    }
  }

在布局中添加tap侦听器,并使用

隐藏键盘

ios

import * as utils from "tns-core-modules/utils/utils";
UIApplication.sharedApplication
        .keyWindow
        .endEditing(true);

android

utils.ad.dismissSoftInput();

编辑

如果您的Page中只有一个TextField,则可以在TextField上调用dismissSoftInput()方法。如果您在Page上有多个TextField s,并且不确定哪个实际上是专注的,则上述代码会有所帮助。

游乐场样品

Android隐藏键盘中,

public void hideSoftKeyboard(Activity mActivity) {
    InputMethodManager inputManager = (InputMethodManager) mActivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
    inputManager.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), 0);
}

kotlin:

yourTextView.onFocusChangeListener = View.OnFocusChangeListener { v, hasFocus -> if (!hasFocus) {
 //hide Keyboard
  }
}

还将添加到XML