Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UISearchBar取消按钮可见但不起作用_Ios_Objective C_Ios7_Uisearchdisplaycontroller - Fatal编程技术网

Ios UISearchBar取消按钮可见但不起作用

Ios UISearchBar取消按钮可见但不起作用,ios,objective-c,ios7,uisearchdisplaycontroller,Ios,Objective C,Ios7,Uisearchdisplaycontroller,我的问题与相同,只是解决方案在我的情况下不起作用 我创建了一个带有导航控制器和表视图控制器的故事板项目。我在表视图中添加了一个UISearchDisplayController,在尝试访问searchDisplayController之前,所有这些都可以正常工作,如下面代码段中所示。我正在使用一个节索引,并将UITableViewIndexSearch或@{search}添加到节标题的顶部,以便放大镜显示在a-Z索引的开头。单击节索引时,将调用以下函数: - (NSInteger) tableV

我的问题与相同,只是解决方案在我的情况下不起作用

我创建了一个带有导航控制器和表视图控制器的故事板项目。我在表视图中添加了一个UISearchDisplayController,在尝试访问searchDisplayController之前,所有这些都可以正常工作,如下面代码段中所示。我正在使用一个节索引,并将UITableViewIndexSearch或@{search}添加到节标题的顶部,以便放大镜显示在a-Z索引的开头。单击节索引时,将调用以下函数:

- (NSInteger) tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
  if ([title isEqualToString:UITableViewIndexSearch])
  {
    [self.searchDisplayController setActive:TRUE animated:TRUE];   // Either of these two lines
    [self.searchDisplayController.searchBar becomeFirstResponder]; // will cause the search bar cancel button to not work
    return 0;
  }
  return index - 1;
}
如果我注释掉访问searchDisplayController的两行,则搜索栏取消按钮将按预期工作。如果代码中没有注释掉这两行中的任何一行,那么搜索栏上的“取消”按钮就好像它根本不在那里一样。删除becomeFirstResponder行意味着我必须单击/触摸搜索栏字段以将焦点转移到它,因此在这种情况下,当我单击取消按钮时,搜索栏将获得焦点。这就好像“取消”按钮可以通过搜索栏透明地看到,但无法单击/触摸。取出这两行代码,取消按钮再次工作

到底发生了什么事