【发布时间】:2015-12-17 06:17:33
【问题描述】:
我的应用程序有一个搜索栏,用于从由 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");
[searchBar resignFirstResponder];
shareItemName =newSearchBar.text;
[self dismissModalViewControllerAnimated:YES];
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
NSLog(@"searchBarShouldBeginEditing");
[newSearchBar setShowsCancelButton:YES animated:YES];
return YES;
}
这些是我的代表
请检查我的代码并给我答案。我需要在加载视图时启用“取消”按钮,它的操作将返回到上一个视图
我需要这样的
否则如何在令人兴奋的取消按钮上添加另一个取消按钮。以便我可以启用它。请给我所有详细信息
【问题讨论】:
-
方法
searchBarCancelButtonClicked被调用了吗? -
@7KV7 - 如果按钮被禁用,它如何被调用?我的猜测是 UISearchBar 的行为是在搜索文本字段不是第一响应者时禁用取消按钮。
-
您可以按照stackoverflow.com/questions/4348351/… 中的说明手动强制启用它。
标签: iphone objective-c cocoa-touch uisearchbar