2011-01-23 82 views
3

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

在此先感谢!

回答

9

使用此:


[UISearchBar resignFirstResponder]; 

只是你所创建的对象的名称替换词的UISearchBar。

+5

,但实际上我需要重写disablesAutomaticKeyboardDismissal因为我使用的是UIModalPresentationPageSheet视图。只要在这里提及它,以防其他人发现这种情况很难像我那样追踪到。 – Bryan 2011-12-25 22:48:55

1

您是否在寻找可以解除键盘操作的方法或者如何以编程方式实际执行该操作?如果以编程的方式,那么[UISearchBar resignFirstResponder]。如果您正在寻找一种可能的方式让用户达到这个目的,您可以让键盘上的返回按钮在按下时恢复其第一响应者状态,或者将UIGestureRecognizer附加到您的视图并进行设置,以便当用户在外面点击时键盘,这个键盘消失了。

1

简单,所有你需要做的是从的UIS​​earchBar得到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; 
}