可能重复:
MonoTouch.Dialog: Dismissing keyboard by touching anywhere in DialogViewController
我注意到,当触摸表格单元格外部(我认为是“部分”)时,不会调用touchesBegan方法,因此我无法调用EndEditing
或ResignFirstReponder
。
我正在创建一个多行条目元素;因此,返回键转到新行而不是“返回”。这是预期的行为。但是,我无法解雇键盘。
我注意到iPhone上的菜单设置(General-> Keyboard-> Shortcuts)或输入凭据时,在外部区域触摸不会使响应者退出。这是否意味着这是整个iOS的限制(或Apple在这些情况下看不合适)?
有没有这样做?
我收集到的是一个相同的问题,但没有人提出有效的答案:
Can I dismiss the iPhone keyboard by touching the background of DialogViewController (MonoTouch.Dialog)?
也许在一年半的时间里有人解决了它?
答案 0 :(得分:1)
miguel.de.icaza在另一个主题上回答了这个问题: https://stackoverflow.com/a/10864640/1134836
他的解决方案:
var tap = new UITapGestureRecognizer (); tap.AddTarget (() =>{ dvc.View.EndEditing (true); }); dvc.View.AddGestureRecognizer (tap);
答案 1 :(得分:0)
我认为你有两个选择:
我认为第一种选择更好,因为它就是Safari所做的。
您可以将工具栏附加到键盘顶部,以模拟Safari对InputAccessoryView
执行的操作。以下是在Obj-C中执行此操作的示例(应该很容易移植):http://gabriel-tips.blogspot.com/2011/05/input-accessory-view-how-to-add-extra.html
但是,如果屏幕空间紧张,它可能对您的布局不起作用。在这种情况下,请使用选项#2。