以编程方式在UISearchController中重置搜索查询字符串

时间:2018-07-13 15:17:58

标签: objective-c uisearchbar uisearchcontroller uisearchbardelegate uisearchresultscontroller

我无法以编程方式重置/替换搜索查询字符串。我试图从UISearchControllerDelegate内修改UISearchBar查询字符串。

我正在使用听写输入。

当说出“删除”命令时,searchController.searchBar.text应该重新设置为@""。语音检测应正常执行,并留空字符串。

查询字符串确实重置为@"",但是语音检测停止。

如何以编程方式在UISearchController中重置搜索查询字符串,并且仍然能够继续使用语音输入?

- (void)updateSearchResultsForSearchController:(nonnull UISearchController *)searchController {
    NSString *searchQuery = self.searchController.searchBar.text;

    // Deletion command
    if ([self.searchController.searchBar.text hasSuffix:@"delete"]) {

        // Things that I've tried that don't work
        //[self.searchController.searchBar setText:@""];
        //self.searchController = [self.searchController init];
        //self.searchController.searchBar.text = @"";

        searchQuery = @"";
    }
}

1 个答案:

答案 0 :(得分:1)

此功能在iOS中尚不可用。尝试清除searchBar的TextField中的文本后,它将键盘模式更改为小键盘输入。

  

因此,结论是,您只能使用听写命令将输入​​提供给textField,而不能清除它。用户必须手动执行该过程才能再次更改为“听写输入”。

希望有帮助。