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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UISearchBar获得焦点和不获得焦点的情况下,UISearchBar上的取消按钮的样式和可用属性也是不一样的...
    Qiu_W阅读 6,127评论 8 9
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,003评论 3 119
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 秋日清晨的阳光并不刺眼,温煦的风吹过街边的老树,低垂的叶子随风摇摆着,像极了他不急不缓的性格。他总是习惯坐在自家门...
    依诺2008阅读 188评论 0 0
  • 传印小天被前妻“骗婚了。 我对印小天的印象,只停留在两个场景,一是《拿什么拯救你,我的爱人》里阳光又深情的男备胎,...
    蜜思萌诺然阅读 638评论 1 6