2012-12-05 50 views
1

我有一个ViewController,其子视图包含一个UISearchBar。当我点击搜索栏时,键盘出现,我可以使用取消按钮关闭它。问题似乎是,当用户点击键盘按钮时,它不接受任何输入。UISearch条不被键盘输入更新

#pragma mark - 
#pragma mark SEARCH METHODS 
#pragma mark - 


- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 

    self.mainSearchBar.showsCancelButton = YES; 

    return YES; 
} 


- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 

    [self.mainSearchBar resignFirstResponder]; 

    self.mainSearchBar.showsCancelButton = NO; 

    self.mainSearchBar.text = @""; 

} 

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

    [self.mainSearchBar resignFirstResponder]; 

} 

有没有人有这个问题之前,或不知道如何解决它?

** UPDATE * ****

原来想编辑的UISearchBar当Siri的正常工作。尽管键盘输入仍然没有运气。我认为这与UISearchBar位于UIView上,然后添加为子视图有关。不知道如何解决它。

**更新2 * **** 移动搜索框主要的UIView,我仍然得到同样的错误。我想知道它现在是否与导航控制器相关。

回答

0

确保应用程序委托具有[self.window makeKeyAndVisible]。希望它能解决你的问题。

+0

嗨,刚刚检查了一个代表是否有这种方法 – ORStudios

0

检查您的viewController的.h文件中是否添加了UISearchBarDelegate。

+0

嗨刚刚添加委托,它没有任何区别。除了按下按键时更新的UISearchBar,一切都可以正常工作。 – ORStudios

+0

试试这个委托方法: - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {} –

+0

刚刚添加它并在其中放置了一个NSLog。它在开始时打印日志,但仍然没有运行更新。 – ORStudios

0

试试这个代码也:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 

{ 
    NSLog(@"%@",searchText); 
} 
+0

嗨,这是不被认可,所以没有记录。 – ORStudios

0

这必须涉及到SearchBar是如何提供有关本ViewControllerview。为什么你使SearchBarsubview的另一个view而不是ViewController的子视图view

+0

我有一个位于底部的UIView。然后我有一个UIView作为一个菜单(认为Facebook的菜单界面),然后在上面,我有一个UIView,它包含内容和UISearchBar。这个想法是,当用户点击一个按钮时,顶视图会滑动。 – ORStudios