Appcelerator:正确的方式自动关闭键盘

时间:2012-06-12 17:30:16

标签: android iphone titanium

我正在使用Titanium编写应用程序。我希望能够在点击文本字段之外的任何地方时自动关闭键盘。我还没有为这个问题找到一个优雅的解决方案。

我想到了一些事情,但我仍在寻找更好的解决方案:

  1. 将事件侦听器基本上分配给视图中的所有其他内容,并关闭键盘(使用textField.blur())。我想避免这种情况,因为它会导致很多代码只是为了解雇键盘。此外,如果我最终向视图添加任何其他内容,我将不得不向该对象添加一个单击侦听器,因此它不是很易于维护。
  2. 创建一个大的透明视图,让它占用整个屏幕。将它直接放在文本字段下面,并在其上添加一个单击侦听器,它将关闭键盘。这是比#1更好的解决方案,但仍然不是很好,因为我在使zIndexes正常工作方面遇到了很多麻烦。这对我的目的来说也是低效的,因为我有一个特定宽度和高度的视图封装了文本字段。我为了简化代码而使用了这些,我在整个应用程序中重复使用它们。
  3. 我尝试为文本字段的“模糊”事件添加一个侦听器,但似乎没有被适当地触发。
  4. 就是这样。我有点不知所措。 zIndexing在iPhone上也表现得很奇怪,我还没有在Android上尝试过。另外,正如我上面提到的,我使用的许多文本字段都封装在具有设置宽度/高度的小视图中 - 所以我认为这会影响Z索引的功能。

    所以根本问题是:在单击焦点的文本字段外任何时,解除键盘的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果我是正确的,点击事件会在所有视图和窗口中传播,因此可以修改#1选项以检查最底层(视图或窗口)的点击,检查其来源然后决定要做什么。