Swift开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:

image.png

这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,我们通过改变isEnabled属性来实现控制是否可以点击的状态,代码如下:

  func showSearchButtonClicked(_ searchBar: UISearchBar) {
        searchBar.resignFirstResponder()
        //searchBar失去焦点
        let cancelBtn = searchBar.value(forKey: "cancelButton") as? UIButton
        //首先取出cancelBtn
        cancelBtn?.isEnabled = true
        //把enabled设置为yes
    }

这样就可以了

image.png

相关代码我们可以选择像我一样直接封装方法,放在自己的通用文件当中随时调用,也可以直接提取我们的方法内部的代码进行功能的实现。

你可能感兴趣的:(Swift开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题)