Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不调用resignFirstResponder()有什么特殊原因吗?_Ios_Swift_Xcode_Search_Uisearchbar - Fatal编程技术网

Ios 不调用resignFirstResponder()有什么特殊原因吗?

Ios 不调用resignFirstResponder()有什么特殊原因吗?,ios,swift,xcode,search,uisearchbar,Ios,Swift,Xcode,Search,Uisearchbar,我试图在Xcode中实现一个名为“shouldHideSearchKeyboard”的方法,当按下返回键时,它会简单地隐藏键盘。问题是,不仅没有调用resignFirstResponder(),甚至也没有调用shouldHideSearchKeyboard,这表明出了严重的问题。我对此感到困惑,因为(1)我尝试了网站上提出的关于这个问题的所有解决方案,(2)我实现了完全相同的功能,除了没有问题的文本字段。 谢谢大家! 我已仔细检查,以确保已将UISearchBarDelegate添加到我的Sea

我试图在Xcode中实现一个名为“shouldHideSearchKeyboard”的方法,当按下返回键时,它会简单地隐藏键盘。问题是,不仅没有调用resignFirstResponder(),甚至也没有调用shouldHideSearchKeyboard,这表明出了严重的问题。我对此感到困惑,因为(1)我尝试了网站上提出的关于这个问题的所有解决方案,(2)我实现了完全相同的功能,除了没有问题的文本字段。 谢谢大家!

我已仔细检查,以确保已将UISearchBarDelegate添加到我的SearchTab类中,在方法中包含一个UISearchBar作为参数,创建一个IB出口,将搜索栏连接到我的代码,并将出口的委托设置为self。尽管如此,永远不要调用shouldHideSearchkeyboard

@IBOutlet weak var IB_SearchBar: UISearchBar!
class SearchTab: UIViewController, UISearchBarDelegate {
   override func viewDidLoad()
{
   super.viewDidLoad()
   self.IB_SearchBar.delegate = self
}

func hideSearchBarKeyboard(_ searchBar: UISearchBar) -> Bool
    {
// Neither resignation nor print statement gets called
        searchBar.resignFirstResponder()
        print("Search bar entry")
return true
    }

}

请使用标准苹果通知。添加代理并使用Apple代理功能:

在加载集委托中

//MARK: UISearchBarDelegate


func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) // called when text changes (including clear) {
        self.reload.....

}

如果
搜索栏是您可以使用的唯一应答器

override var canBecomeFirstResponder: Bool {
        return true
    }
&


view.endEditing(true)
而不是
searchBar.resignFirstResponder()

您的问题是关于
shoulldhidesearchkeyboard
。您的代码有一个名为
hideSearchBarKeyboard
的方法。但是,你发明的这两种方法中的哪一种应该被称为什么呢?UISearchBar`的委托方法不适用于任何一种方法。@ingconti Lmao谢谢,我没有想到我所做的函数没有列在Apple文档中。在阅读并使用searchBarButtonClicked(UISearchBar)之后,它就可以工作了。