【问题标题】:Correct way to dismiss keyboard from a TextView in Nativescript从 Nativescript 中的 TextView 关闭键盘的正确方法
【发布时间】:2017-03-08 13:46:09
【问题描述】:

我有以下 TextView:

<TextView id="textFieldBody" hint="Some hint" text="{{  }}" editable="true" class="TextField" returnKeyType="done" />

我正在尝试正确实现它,以便:

  • 当用户按下“完成”时,键盘消失
  • 当用户触摸 TextView 外部(模糊)时,键盘 消失
  • 也许当焦点在 TextView 上时,向上滚动以便其余的 视图不会消失在键盘后面? (还不确定这个 一)

我不清楚如何实现这一点。我需要实现什么样的后端代码?

理想情况下,我正在寻找一种适用于 iOS 和 Android 的解决方案。

【问题讨论】:

  • 隐藏键盘可以使用dismissSoftInput方法-docs.nativescript.org/api-reference/classes/…
  • @NikolayTsonev 谢谢!我已经看到了,但我不确定如何实现它?我已经这样添加了: page.getViewById("textFieldBody").dismissSoftInput();到我的 onLoaded 函数,但它不起作用。按完成键返回新行。
  • 这里已经解决了模糊效果:stackoverflow.com/q/39949110

标签: textview uitextview nativescript


【解决方案1】:

当用户按下完成后,键盘消失

对于这个,您可以在 textview 中放置一个侦听器,以便在用户按下done 按钮时触发它。看了NativeScript API,这个监听器只适用于TextField,但你可以试试TextView:

在 XML 中:

<TextField returnPress="doneTap"/>

在 .js 文件中:

function doneTap(args) {
    var myTextField = args.object;
    myTextField.dismissSoftInput();
}
exports.doneTap = doneTap

当用户触摸 TextView 外部(模糊)时,键盘消失

对于这个,您将为 TextField 的父视图放置一个侦听器。当您在外面点击时,它将调用隐藏键盘的功能。好消息是这个监听器将被 TextField 点击覆盖。因此,当您点击 TextField 时,键盘仍然会出现。你可以找到答案here

当焦点在 TextView 上时,向上滚动以便视图的其余部分不会消失在键盘后面?

使用此plugin 防止键盘覆盖文本字段

【讨论】:

  • 感谢您的回答!我今天早些时候尝试过 returnPress,但它不适用于 TextView。
  • 好的,关于我问题的第三部分,请参阅 Github 上的这个问题:github.com/NativeScript/NativeScript/issues/166 和这个插件npmjs.com/package/nativescript-iqkeyboardmanager :)
  • 哦该死,我忘了我也在使用那个插件,但它只适用于 iOS。
  • 第二个问题,对于ios,我想应该是myTextField.ios.resignFirstResponder()
  • 我会更新第三个问题,让其他人知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2020-09-10
  • 2021-04-26
  • 2011-03-28
  • 2015-05-29
相关资源
最近更新 更多