【问题标题】:iOS - View Controller With Container Views - Hide KeyboardiOS - 带有容器视图的视图控制器 - 隐藏键盘
【发布时间】:2013-06-18 16:06:43
【问题描述】:

我有一个具有 3 个容器视图的视图控制器。在其中一个容器视图中,有一个文本字段,点击它应该隐藏键盘。当在视图控制器上检测到触摸时,我需要知道如何隐藏键盘。请注意,当我点击容器视图时,不会在 parentViewController 上调用“touchesBegan”方法。

【问题讨论】:

  • 您想在点击文本字段外的屏幕时隐藏键盘?

标签: iphone ipad cocoa-touch uiviewcontroller uikit


【解决方案1】:

将 viewController 的 UIView 和其他容器 UIView 更改为 UIButton,然后使用以下代码将它们绑定到按钮的触摸事件之一到 IBAction:

-(IBAction)press:(id)sender
{
   [yourTextField resignFirstResponder];
}

【讨论】:

  • 没有。就像我在问题中提到的那样,该屏幕中有三个容器视图,即使用户单击屏幕上的任何容器视图,我也希望它能够正常工作。
  • 也将容器视图更改为按钮,并将它们全部绑定到函数,即使您以编程方式添加容器,您也可以将它们定义为 UIButton 并将它们绑定到函数
  • 真是一个笨拙的解决方案。
【解决方案2】:

在您的视图控制器上实现 touchesBegan。从那里调用视图控制器视图的 endEditing:

- (void) touchesBegan: (NSSet *) touches withEvent:(UIEvent *)event 
{
     [self.view endEditing: YES];
}

【讨论】:

    【解决方案3】:

    您可以使用 UITapGesture。

    在你的 viewcontroller 的 viewDidLoad 中写下这个

    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    singleTap.numberOfTapsRequired = 1;
    singleTap.numberOfTouchesRequired = 1;
    [self.view addGestureRecognizer: singleTap];
    

    及其处理方法

     -(void)handleSingleTap :(UIGestureRecognizer*)ges
    {
     [yourtextField resignFirstResponder];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多