Ios 按下“时关闭键盘”;x";在UISearchBar
如果我将辞职代码放在我的If条件中,键盘不辞职,如果我对If条件进行注释,我的键盘辞职Ios 按下“时关闭键盘”;x";在UISearchBar,ios,uisearchbar,uikeyboard,resignfirstresponder,Ios,Uisearchbar,Uikeyboard,Resignfirstresponder,如果我将辞职代码放在我的If条件中,键盘不辞职,如果我对If条件进行注释,我的键盘辞职 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { if (searchText.length == 0) { [searchBar resignFirstResponder]; } } 我想在用户按下“x”按钮时退出键盘,此时UISearchBar文本为空。有什么
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (searchText.length == 0) {
[searchBar resignFirstResponder];
}
}
我想在用户按下“x”按钮时退出键盘,此时UISearchBar文本为空。有什么方法可以做到这一点吗?请让第一响应者退出,但在下一个运行循环中,如下所示:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
NSRange foundRange = [searchText rangeOfString:@"x"];
if (foundRange.location != NSNotFound) {
if (searchText.length == 0) {
[searchBar resignFirstResponder];
}
}
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if ([searchText length] == 0)
{
[searchBar performSelector:@selector(resignFirstResponder)
withObject:nil
afterDelay:0];
}
}
已测试且有效。针对switf 3更新:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text == nil || searchBar.text == ""
{
searchBar.perform(#selector(self.resignFirstResponder), with: nil, afterDelay: 0.1)
}
}
添加取消按钮以查看加载和添加方法->搜索栏取消按钮单击
searchBar.showsCancelButton = true
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
在另一篇stackoverflow文章[1]中,你得到了答案[这里][1]:那篇文章对我来说真的不管用。这个更好,但我使用了@selector(resignFirstResponder),我不认为这是问题所指的“x”按钮。