0

可能重复:
MonoTouch.Dialog:通过触摸 DialogViewController 中的任何位置来关闭键盘

我注意到,当触摸表格单元格(我认为是“部分”)之外时,不会调用 touchesBegan 方法,因此我无法调用EndEditingor ResignFirstReponder

我正在创建一个多行条目元素;正因为如此,返回键转到新行而不是“返回”。这是预期的行为。但是,那时我无法关闭键盘。

我注意到在 iPhone 上的菜单设置(常规->键盘->快捷方式)或输入凭据时,触摸外部区域不会让响应者退出。这是否意味着这是整个 iOS 的限制(或者 Apple 在这些情况下认为不合适)?

有没有办法做到这一点?

据我所知,这里有一个相同的问题,但没有人想出一个有效的答案:
我可以通过触摸 DialogViewController (MonoTouch.Dialog) 的背景来关闭 iPhone 键盘吗?

也许在一年半内有人解决了它?

4

2 回答 2

1

miguel.de.icaza 在另一个线程上回答了这个问题: https ://stackoverflow.com/a/10864640/1134836 。

他的解决方案:

   var tap = new UITapGestureRecognizer ();
   tap.AddTarget (() =>{
       dvc.View.EndEditing (true);
   });
   dvc.View.AddGestureRecognizer (tap);
于 2012-06-19T16:50:16.917 回答
0

我认为你有两个选择:

  • 在某处放置一个“完成”按钮
  • 在视图的背景上连接触摸事件以关闭

我认为第一个选项更好,因为它是 Safari 所做的。

您可以在键盘顶部附加一个工具栏来模拟 Safari 对InputAccessoryView. 这是在 Obj-C 中执行此操作的示例(应该很容易移植): http: //gabriel-tips.blogspot.com/2011/05/input-accessory-view-how-to-add-extra.html

但是,如果屏幕空间很紧,它可能不适用于您的布局。在这种情况下使用选项#2。

于 2012-04-17T17:42:34.273 回答