xamarin.ios - MonoTouch.Dialog:通过触摸 DialogViewController 中的任意位置来关闭键盘

标签 xamarin.ios monotouch.dialog

注意:有两个类似的问题 (1) (2) ,但他们都没有提供答案。

TL;DR:如何通过让用户触摸 View 中的任何空白区域来关闭 MonoTouch.Dialog 中的键盘?

我正在使用 MonoTouch.Dialog 和 UITabBarController 编写一个应用程序。我的选项卡之一是“设置”...

Settings screen

当用户开始输入时,键盘会遮挡标签栏...

enter image description here

使用 MonoTouch.Dialog,关闭键盘的唯一方法是转到最后一个字段并按“返回”键。考虑到用户在键盘消失之前无法按任何选项卡,我想要一种更好的方法来做到这一点。即,如果用户点击屏幕上的其他任何位置,则关闭。

如果没有 MonoTouch.Dialog,这很简单:只需覆盖 TouchesBegan 并调用 EndEditing 即可。但这不适用于 MT.D。我尝试过子类化 DialogViewController 并覆盖 TouchesBegan ,但它不起作用。我现在很迷茫。

或者,我想知道,我是否最好放弃标签栏,以便我可以使用顶部带有“后退”按钮的 UINavigationController,该按钮不会被键盘隐藏?

最佳答案

我建议您使用不会对 TableView 事件处理程序造成干扰的点击手势识别器:

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

关于xamarin.ios - MonoTouch.Dialog:通过触摸 DialogViewController 中的任意位置来关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824092/

相关文章:

c# - Xamarin iOS 访问地址簿请求权限中断应用程序

c# - MonoTouch MKLocalSearch示例

iphone - Monotouch.Dialog 自定义单元格

xamarin.ios - 自定义 Monotouch.Dialog 元素中的中心单元格内容

ios - 如何将 MonoTouch.Dialog 元素嵌入到 ViewController 中?

c# - MonoTouch.Dialog RootElement 的自定义标题

iphone - MonoTouch UITableViewController 和 TableFooterView

ios - ScrollView 中的 UIImageView 在后续加载时具有不同的框架

c# - MonoTouch.Dialog 可以与级联数据源一起使用吗?

ios - 为什么 itunesconnect 认为我的应用程序正在注册推送通知?