4

我正在使用 aUISearchBar来搜索列表,但是当我单击键盘上的搜索按钮时,键盘并没有隐藏。
请帮我解决这个问题。
这是我的代码

-(void)search:(UISearchBar*)searchbar Text:(NSString*)text
{
    [copyListOfItems removeAllObjects];
    if([text length] > 0) {
    //  [ovController.view removeFromSuperview];
    searching = YES;
    NSString *searchText = searchBar.text;
           for(imergencyData *objtrust in aryTrustee)
          {
          NSRange titleResultsRange = [objtrust.strName rangeOfString:searchText options:NSCaseInsensitiveSearch];

        if (titleResultsRange.length > 0)
            [copyListOfItems addObject:objtrust];
    }
    NSLog(@"number of object found %d",copyListOfItems.count);
}
else
    {
    //  [tblTrustee insertSubview:ovController.view   aboveSubview:self.parentViewController.view];
    [searchbar resignFirstResponder];
    searching = NO;
    //tblTrustee.scrollEnabled = NO;
}
[tblTrustee reloadData];
}

-(void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
 {
       [aSearchBar resignFirstResponder];
       [self.view endEditing:YES];
 }

 //Method call when type text in search box
-(void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText {
        [self search:theSearchBar Text:searchText];

}
//method call when on search button
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBa{
        [searchBa endEditing:YES];
        [searchBa resignFirstResponder];
        [self search:searchBa Text:searchBar.text];

}
4

8 回答 8

4

把这行代码试一下,

- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
  [aSearchBar resignFirstResponder];
  [self.view endEditing:YES];
}

(或) EDIT

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
      [searchBar resignFirstResponder];
      [self.view endEditing:YES];
  }
于 2013-05-02T12:39:58.803 回答
0

先设置searchbar.delegate = self- (void) searchBarSearchButtonClicked:(UISearchBar *)theSearchBar调用[searchbar resignFirstRespnder]

祝你好运

于 2013-05-02T12:35:33.537 回答
0

使用搜索栏委托作为

     -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar1
     {
       [searchBar1 resignFirstResponder];
     }
于 2014-04-29T04:39:35.047 回答
0

您可以使用以下委托,该委托在单击搜索栏搜索按钮时调用。

- (void) searchBarSearchButtonClicked:(UISearchBar *)theSearchBar
{    

    [theSearchBar resignFirstResponder];

 }

或将其用作:

- (void) searchBarSearchButtonClicked:(UISearchBar *)theSearchBar
    {    

        [self keyBoradRemove];

     }

- (void) keyBoradRemove 
{
    searchBar.text = @"";
    [searchBar resignFirstResponder];

}

这里的 searchBar 是 UISearchBar 的一个实例。

UISearchBar *searchBar;

希望它可以帮助你。

于 2013-05-02T12:44:05.217 回答
0
 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
  {
      [searchBar resignFirstResponder];

   }

但在此之前请检查您是否正确设置了搜索栏委托。

于 2014-11-18T18:13:35.597 回答
0
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];

}
于 2013-10-29T07:34:06.860 回答
0

使用此代码在单击键盘的搜索按钮时隐藏键盘

- (void)searchBarTextDidBeginEditing:(UISearchBar *) bar
{
    UITextField *searchBarTextField = nil;
    NSArray *views = ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0f) ? bar.subviews : [[bar.subviews objectAtIndex:0] subviews];
for (UIView *subview in views)
{
    if ([subview isKindOfClass:[UITextField class]])
    {
        searchBarTextField = (UITextField *)subview;
        break;
    }
}
searchBarTextField.enablesReturnKeyAutomatically = NO;
}
于 2014-10-15T11:32:00.483 回答
0

对于 swift 1.2,您可以触摸外部或单击搜索,在这两种情况下键盘都会隐藏

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    self.view.endEditing(true)
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
        searchBar.resignFirstResponder()
    }
于 2015-10-26T23:46:19.857 回答