可以通过触摸MonoTouch.Dialog中的单元格的外部解除键盘?

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

我注意到,当触摸表格单元格(我认为是“部分”)之外,touchesBegan方法不会被调用,所以我不能调用EndEditingResignFirstReponder

我正在创build一个多行入口元素; 因此,返回键将转到一个新行,而不是“返回”。 这是预期的行为。 但是,我没有办法解雇键盘。

我注意到在iPhone(General-> Keyboard-> Shortcuts)菜单的设置中,或者当input凭证时,在外部区域的触摸不会响应响应者。 这是否意味着这是整个iOS的限制(或者苹果公司在这些情况下是不适合的)?

有没有办法做到这一点?

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

也许在一年半的时间里有人解决了它?

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

他的解答:

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

我想你有两个select:

  • 把一个“完成”button的地方
  • 挂钩触摸事件的背景下你的观点解雇

我认为第一个select是更好的,因为它是什么Safari。

您可以将一个工具栏附加到键盘的顶部,以模拟Safari使用InputAccessoryView 。 下面是在Obj-C中做这个的一个例子(应该很容易移植): http : //gabriel-tips.blogspot.com/2011/05/input-accessory-view-how-to-add-extra.html

但是,如果屏幕的房地产紧张,它可能不适合你的布局。 在这种情况下select#2。