首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchBarDelegate的textDidChange方法在语音转文本时有奇怪的行为

UISearchBarDelegate的textDidChange方法在语音转文本时有奇怪的行为
EN

Stack Overflow用户
提问于 2013-04-06 01:47:03
回答 2查看 621关注 0票数 2

我有一个iPhone应用程序,其中包含一个顶部带有UISearchBarUITableView。当用户在UISearchBar中输入内容时,会对UITableView的内容进行适当的过滤。当用户删除UISearchBar中的所有文本时,搜索栏将不再是第一响应器,表视图再次变为未过滤状态。以下是相关的委托代码:

代码语言:javascript
复制
- (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    if(searchBar.text.length == 0)
    {
        [self.searchBar resignFirstResponder];
        [self.myModel stopFiltering];
        [self.tableView reloadData];
    }
}

这样做的问题是,当用户对着手机说话,并试图在搜索栏中进行语音到文本的转换(通过Siri)时,textdidChange方法会返回一个空字符串作为搜索文本。因此,我无法知道用户是对着他们的手机说话,还是删除了字段中的所有文本。这是预期的行为吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-06 10:10:06

尝试执行此操作,并检查是否可以进入IF statement

代码语言:javascript
复制
 - (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
    {
        if([searchText length]== 0)
        {
            [self.searchBar resignFirstResponder];
            [self.myModel stopFiltering];
            [self.tableView reloadData];
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2013-04-06 14:05:19

代码语言:javascript
复制
if([searchText length]> 0)
{
    [self searchTableView];
}
else
{
    [self btncloseClicked];

}

代码语言:javascript
复制
- (void)btncloseClicked
{
    [YourSearchBar performSelector: @selector(resignFirstResponder) withObject: nil afterDelay: 0.1];
    [table_View reloadData];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15840237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档