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

Resetting the search query string in UISearchController programmatically

我无法以编程方式 reset/substitute 搜索查询字符串。我试图从 UISearchControllerDelegate 中修改 UISearchBar 查询字符串。

我正在使用听写输入。

当说出命令"delete"时,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 = @"";
    }
}

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

So, the conclusion is, you can only provide the input to the textField using the dictation but can't clear it. User has to manually do the process to change again to Dictation Input.

希望对您有所帮助。