1

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

我考虑过几件事,但仍在寻找更好的解决方案:

  1. 基本上将事件侦听器分配给视图中存在的所有其他内容,然后关闭键盘(使用textField.blur())。我想避免这种情况,因为它会导致很多代码只是为了关闭键盘。此外,如果我最终向视图添加任何其他内容,我还必须向该对象添加一个单击侦听器,因此它不是很容易维护。
  2. 创建一个大的透明视图,并让它占据整个屏幕。将它直接放在文本字段下方,并在将关闭键盘的那个上添加一个单击侦听器。这是一个比 #1 更好的解决方案,但仍然不是很好,因为我在让 zIndexes 正常工作时遇到了很多麻烦。对于我的目的来说,这也是低效的,因为我有具有特定宽度和高度的视图来封装文本字段。为了简化代码,我使用了这些,并在整个应用程序中重复使用它们。
  3. 我已经尝试为文本字段的“模糊”事件添加一个侦听器,但这似乎没有被适当地触发。

就是这样。我有点不知所措。zIndexing 在 iPhone 上的表现也很奇怪,我还没有在 Android 上尝试过。此外,正如我上面提到的,我使用的许多文本字段都封装在具有设置宽度/高度的小视图中——所以我认为这会影响 Z 索引的功能。

所以根本问题是:当单击焦点所在的文本字段之外的任何内容时,关闭键盘的最佳方法是什么?

4

1 回答 1

1

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

于 2012-06-13T11:45:48.077 回答