我有一个ViewController,其子视图包含UISearchBar
。当我点击搜索栏时,键盘出现,我可以使用取消按钮将其关闭。问题似乎是当用户点击键盘按钮时它不接受任何输入。
#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];
}
之前是否有人遇到此问题或知道如何解决此问题?
** 更新 * ****
事实证明,Siri在尝试编辑UISearchBar时会起作用。尽管键盘输入仍然没有运气。我认为它与UISearchBar位于UIView上的事实有关,然后将其添加为子视图。不知道怎么解决它。
** 更新2 * **** 将搜索框移动到主UIView,我仍然得到相同的错误。我想知道它现在是否与导航控制器有关。
答案 0 :(得分:0)
确保app委托有[self.window makeKeyAndVisible]。希望它能解决你的问题。
答案 1 :(得分:0)
检查您是否在viewController的.h文件中添加了UISearchBarDelegate。
答案 2 :(得分:0)
也请尝试以下代码:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
NSLog(@"%@",searchText);
}
答案 3 :(得分:0)
这必须与SearchBar
ViewController
相对于view
的呈现方式有关。为什么要将SearchBar
subview
作为另一个view
的{{1}}而不是ViewController
的{{1}}的子视图?
答案 4 :(得分:0)
问题解决后,答案在前一个帖子Keyboard and cursor show, but I can't type inside UITextFields and UITextViews
中找到事实证明,在IOS6中,需要点击选项上的Visible at Launch检查。