【问题标题】:How to cancel the keyboard in UISearchbar?如何取消 UISearchbar 中的键盘?
【发布时间】:2012-12-27 16:09:56
【问题描述】:

我在我的应用程序中使用UISearchBar,它既可以用作编辑字段,也可以用作搜索。因此,当我想消失键盘时,我必须在 UISearchBar 中使用取消按钮,但我不能在屏幕上显示取消按钮,所以在不使用取消按钮的情况下如何让键盘消失。请帮助我,因为我是 iPhone 应用程序开发的新手。

提前致谢!

【问题讨论】:

    标签: iphone iphone-softkeyboard


    【解决方案1】:

    使用这个:

    
    [UISearchBar resignFirstResponder];
    

    只需将单词 UISearchBar 替换为您创建的对象的名称。

    【讨论】:

    • 我以为我遇到了这个问题,但实际上我需要覆盖 disablesAutomaticKeyboardDismissal 因为我使用的是 UIModalPresentationPageSheet 视图。只是在这里提一下,以防其他人发现这和我一样难以追踪。
    • 对不起,应该说 UIModalPresentationFormSheet
    • 优秀的评论@Bryan——这是我的问题。
    【解决方案2】:

    您是否正在寻找可以关闭键盘的方法或如何以编程方式实际执行该操作?如果以编程方式,则为[UISearchBar resignFirstResponder]。如果您正在为用户寻找一种可能的方式来实现这一点,您可以让键盘上的返回按钮在按下时放弃其第一响应者状态,或者将 UIGestureRecognizer 附加到您的视图并进行设置,以便当用户在键盘外点击,此键盘消失。

    【讨论】:

      【解决方案3】:

      您只需从 UISearchbar 获取 UITextfield 控件,然后将 UITextfield 的委托设置为将执行-(void) textFieldShouldReturn:(UITextField *)textField的任何委托

      -(void)viewDidLoad{    
          UIView * subView;
          NSArray * subViews = [searchbar subviews];
          for(subView in subViews)
          {
              if( [subView isKindOfClass:[UITextField class]] )
              {
                 ((UITextField*)subView).delegate=self;
                  ((UITextField*)subView).returnKeyType=UIReturnKeyDone;
                  break;
              }
          }
      }
      
      -(BOOL) textFieldShouldReturn:(UITextField *)textField{
          [textField resignFirstResponder];
          return TRUE;
      }
      

      【讨论】:

        猜你喜欢
        • 2011-08-02
        • 1970-01-01
        • 2017-03-25
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 2018-03-28
        • 1970-01-01
        • 2012-09-30
        相关资源
        最近更新 更多