隐藏键盘上的单击输入按钮或搜索按钮

问题描述:

我在UIBarButtonItem里面添加了UISearchBar按钮。隐藏键盘上的单击输入按钮或搜索按钮

以下表格:

// search bar 
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 260, 44)]; 
UIBarButtonItem *searchBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:searchBar]; 
[searchBar release]; 

[buttons addObject:searchBarButtonItem]; 

现在出现在当我点击UISearchBar键盘上的问题。我想在点击输入或搜索按钮时隐藏键盘。我怎样才能做到这一点?

UISearchBarDelegate实现方法:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [searchBar resignFirstResponder]; 
} 
+1

thanks..for溶液 –

您需要处理UISearchBarDelegate protocol方法。

在以下方法中,调用UISearchBar的方法-resignFirstResponder

  • (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
  • (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
  • (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar

的上述委托方法的细节可以在the apple official document找到。我经常在这些代表方法中将第一响应者辞职为搜索结束。

可以使用的UISearchBar的委托方法

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
{ 
    [searchBar resignFirstResponder]; 
} 

和输入(未测试)

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText; // called when text changes (including clear) 
{ 
    if ([searchText isEqualToString:@"\n"]) 
       [searchBar resignFirstResponder]; 
} 

希望这有助于你...

在头文件中添加或连接到UISearchBar插座:应该看起来像这样:
@property(弱,非原子)IBOutlet UISearchBar * searchBarName;
然后在实现者中添加以下内容:
self.searchBarName.delegate = self;viewDidLoad中功能
然后添加以下功能:
- (无效),在searchBarSearchButtonClicked:(的UISearchBar *)搜索栏
{
[self.searchBarName resignFirstResponder];

}

而且上述保证,这是在头部添加/扩展
UISearchBarDelegate

使用[textField endEditing:YES];,它应该为你工作,或者你可以创建乌尔按钮的oject做[self.buttonObj resignFirstResponder]

用于迅速1.2

func searchBarSearchButtonClicked(searchBar: UISearchBar) { 
     searchBar.resignFirstResponder() 
    }