我无法以编程方式重置/替换搜索查询字符串。我试图从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 = @"";
}
}
答案 0 :(得分:1)
此功能在iOS中尚不可用。尝试清除searchBar的TextField中的文本后,它将键盘模式更改为小键盘输入。
因此,结论是,您只能使用听写命令将输入提供给textField,而不能清除它。用户必须手动执行该过程才能再次更改为“听写输入”。
希望有帮助。