键盘可以通过触摸MonoTouch.Dialog中的单元格外部来关闭吗?

本文关键字:外部 单元格 触摸 可以通过 MonoTouch Dialog 键盘 | 更新日期: 2023-09-27 18:30:52

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

我注意到当触摸表格单元格(我认为是"部分")外部时,不会调用 touchesBegin 方法,所以我无法调用 EndEditingResignFirstReponder .

我正在创建一个多行入口元素;因此,返回键转到新行而不是"返回"。这是预期行为。但是,我没有办法关闭键盘。

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

有没有办法这样做?

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

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

键盘可以通过触摸MonoTouch.Dialog中的单元格外部来关闭吗?

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

他的解决方案:

   var tap = new UITapGestureRecognizer ();
   tap.AddTarget (() =>{
       dvc.View.EndEditing (true);
   });
   dvc.View.AddGestureRecognizer (tap);

我认为您有 2 个选择:

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

我认为第一种选择更好,因为这是Safari所做的。

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

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