【问题标题】:How to dismiss keyboard in case of a modal view?在模态视图的情况下如何关闭键盘?
【发布时间】:2011-01-21 11:45:52
【问题描述】:

在 iPad 上运行。 我正在模态地展示一个视图控制器。它使用 MonoTouch.Dialog 来显示一些文本输入字段、按钮等。 点击文本字段时,键盘会弹出。在文本字段外点击时,我想关闭键盘,但它不会消失。我读到当呈现为 FormSheet 时无法关闭键盘?对吗?

这是我的代码。选择器被调用,但键盘保持在原来的位置。由于文本字段是动态创建的,因此我不能/不想在每个字段上调用 ​​ResignFirstResponder(),而是让视图成为第一响应者,然后辞职。

public override void ViewDidLoad ()
{
  base.ViewDidLoad (  );
UITapGestureRecognizer oTapRecognizer = new UITapGestureRecognizer (  );
oTapRecognizer.AddTarget(this, new MonoTouch.ObjCRuntime.Selector("ViewTappedSelector:"));
this.View.AddGestureRecognizer ( o );
}

[Export( "ViewTappedSelector:" )]
public void ViewTapped ( UIGestureRecognizer sender )
{
    this.View.BecomeFirstResponder (  );
    this.View.ResignFirstResponder (  );
}

【问题讨论】:

  • 文本字段是如何创建的?视图可以成为第一响应者吗?
  • 文本字段由 MT.Dialog 创建。我认为任何东西都可以成为第一响应者......?只要它为我提供了 becomeFirstResponder() 方法,我就调用它。 :-)

标签: xamarin.ios monotouch.dialog


【解决方案1】:

我读到当呈现为 FormSheet 时无法关闭键盘?

这是正确的。如果您想在显示模态视图时关闭键盘,您将使用不同的模态样式来呈现它,并且您可以调整视图的大小以采用与表单相同的框架。

【讨论】:

  • 但那是一个杂牌。调整模态框的大小不是有意的,只有在它们变得可见后才有可能。但是我对这种行为很好。如果史蒂夫决定这样,我会接受的。 :-)
  • 另一个旁注:我刚刚意识到 iPad 键盘甚至有一个按钮(右下角)可以手动关闭它。
猜你喜欢
  • 2012-09-16
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 2011-07-17
  • 2012-12-18
  • 2014-02-04
  • 1970-01-01
相关资源
最近更新 更多