中
我有一个跨平台应用。我的表格具有多个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