菜鸟教程小白 发表于 2022-12-13 09:51:15

ios - 仅使用 UISearchBar 时如何触发 "cancel search"?


                                            <p>我有一个表 View ,其标题显示 <code>UISegmentedControl</code>和一个 <code>UISearchBar</code> .请记住,我没有使用 <code>UISearchController</code> .当我搜索了当前列表并切换了不同的段时,我想取消搜索并使用新数据重新加载列表。<br><br>目前我正在手动清除搜索文本、动画取消按钮和隐藏键盘。但我也在我的 <code>searchBarCancelButtonClicked</code> 中这样做方法。<br><br>仅使用 UISearchBar 时,有没有办法以编程方式取消搜索(清除文本、隐藏键盘和隐藏取消按钮)?</p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p>不,没有办法自动清除文本字段、隐藏键盘等。尽管它看起来很常见,但每个开发人员都可以决定如何实现它。 Apple 只提供了在用户点击取消按钮时捕捉事件的能力。<br><br>通常,我会在 ViewController 中创建一个本地函数,例如:<br><pre><code>-(void)clearSearchBar:(UISearchBar *)searchBar {
    searchBar.Text = @&#34;&#34;;
    ;
    ...
}
</code></pre><br>然后,在 <code>searchBarCancelButtonClicked:</code> (假设您已经为搜索栏创建了一个 IBOutlet),您可以这样做:<br><pre><code>-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    ;
}
</code></pre><br>您也可以调用 <code>clearSearchBar:</code>您需要清除它的其他任何地方。<br><br>显然,这里可以使用类别来避免重复代码。<br><br>您也可以调用 <code>searchBarCancelButtonClicked:</code>像这样:<br><pre><code>;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 仅使用 UISearchBar 时如何触发&#34;cancel search&#34;?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31995119/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31995119/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 仅使用 UISearchBar 时如何触发 &#34;cancel search&#34;?