在iPhone上的联系人应用程序中输入搜索词,然后点击"搜索"按钮,键盘被隐藏,但取消按钮仍然启用.在我的应用程序中,当我调用resignFirstResponder时取消按钮被禁用.
任何人都知道如何在取消按钮处于启用状态的同时隐藏键盘?
我使用以下代码:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
键盘滑出视图,但搜索文本字段右侧的"取消"按钮被禁用,因此我无法取消搜索.联系人应用程序将取消按钮维持在启用状态.
我想也许一个解决方案是深入到searchBar对象并在实际文本字段上调用resignFirstResponder,而不是搜索栏本身.
任何输入赞赏.
我的应用程序有一个搜索栏,用于从表视图中搜索记录,该视图由sqlite DB填充.我的问题是,当视图打开时,"取消"按钮未启用,我也无法触及,就像只有图像一样.它就在那里,但没有动作.当我们点击该搜索栏文本时,取消按钮将更改为"已完成",它将启用一个.所以这是我的代码
这是我的搜索栏视图,看到取消按钮.它没有启用

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
//[newSearchBar setShowsCancelButton:YES animated:YES];
newSearchBar.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
NSLog(@"search begin edit") ;
//searchString = searchBar.text;
//NSLog(@"print did edit searchstring : %@", searchString) ;
for(UIView *view in [searchBar subviews])
{
//shareItemId =newSearchBar.text;
if([view isKindOfClass:[NSClassFromString(@"UINavigationButton") class]]) {
[(UIBarItem *)view setTitle:@"Done"];
}
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
NSLog(@"searchBarTextDidEndEditing:");
[searchBar resignFirstResponder];
//[self dismissModalViewControllerAnimated:YES];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
NSLog(@"searchBarSearchButtonClicked");
searchString = searchBar.text;
NSLog(@"search %@", searchBar.text);
[newSearchBar setShowsCancelButton:NO animated:YES];
[searchBar resignFirstResponder];
//[self dismissModalViewControllerAnimated:YES];
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
NSLog(@" searchBarCancelButtonClicked"); …Run Code Online (Sandbox Code Playgroud)