1

我有一个带有子视图的 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];

}

以前有没有人遇到过这个问题或知道如何解决?

**更新* ****

事实证明,当尝试编辑 UISearchBar 时,Siri 会起作用。尽管如此,键盘输入仍然没有运气。我认为这与 UISearchBar 位于 UIView 然后添加为子视图这一事实有关。不知道如何解决它。

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

4

5 回答 5

0

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

于 2012-12-05T11:05:40.470 回答
0

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

于 2012-12-05T11:11:32.937 回答
0

也试试这个代码:

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

{
    NSLog(@"%@",searchText);
}
于 2012-12-05T11:19:53.053 回答
0

这必须与相对于's 的SearchBar呈现方式有关。您为什么要制作另一个的a而不是s的子视图?ViewControllerviewSearchBarsubviewviewViewControllerview

于 2012-12-05T12:56:46.340 回答
0

问题解决了,在上一个线程键盘和光标显示中找到了答案,但我无法在 UITextFields 和 UITextViews 内输入

事实证明,在 IOS6 中,Visible at Launch 检查需要单击选项。

于 2012-12-05T14:17:33.803 回答