【问题标题】:How to remove keyboard from textview when uiview is clicked?单击uiview时如何从textview中删除键盘?
【发布时间】:2015-12-05 05:25:01
【问题描述】:

当键盘处于文本视图的编辑模式时,我试图移除键盘。我在主视图上添加了点击手势。但是当编辑模式为文本字段时,键盘被移除,但编辑模式为对于 textview 然后键盘没有被删除。请告诉我如何解决这个问题?

在主视图中添加了点击手势。

UITapGestureRecognizer *singleFingerTap =
    [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleSingleTap:)];
    [self.main_view setUserInteractionEnabled:true];
    [self.main_view addGestureRecognizer:singleFingerTap];

调用方法

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer
{

    if([self.txt_username isFirstResponder])
    {
        [self.txt_username resignFirstResponder];
    }
    if([self.txt_password isFirstResponder])
    {
        [self.txt_password resignFirstResponder];
    }

}

我已经为文本视图设置了委托,并且我还添加了 textview 协议。

【问题讨论】:

  • @deepal kumar,现在试试我的答案,我已经编辑过,我试过了,效果很好
  • 您找到解决方案了吗??如果没有,请告诉我会尽力解决您的问题
  • 现在试试我的答案 我已经更新了,我试过了

标签: ios objective-c uiview


【解决方案1】:

删除 setUserInteractionEnabled =true 的代码,你不需要那个

并将其添加到您的函数中

-(void)handleSingleTap:(UITapGestureRecognizer *)recognizer
{
[self.view endEditing:YES];
}

或者你可以使用库 TPKeyboardAvoiding ,设置为滚动视图..当你点击视图时它的自动关闭键盘..所以你不需要那个 UITapGestureRecognizer

【讨论】:

    【解决方案2】:
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [[self view] endEditing:YES];
    

    }

    当给定阶段有新的或更改的触摸时,应用程序对象会调用这些方法之一。每个方法都有两个参数:一组触摸和一个事件。

    欲了解更多信息Click here

    【讨论】:

      【解决方案3】:

      我认为你只输入了textview resingFirstresponder

      - (void)handleSingleTap:(UITapGestureRecognizer *)recognizer
      {
              [self.txt_username resignFirstResponder];
      }
      

      使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多