博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS Swift UISearchController的取消按钮
阅读量:6303 次
发布时间:2019-06-22

本文共 1044 字,大约阅读时间需要 3 分钟。

UISearchController的取消按钮

关于UISearchController的设置就不多说了,可以参考或者自行上网查找。 情况 本人想实现通讯录上方的搜索框功能,但在搜索框的取消按钮的设置这个卡住,在网上搜了个遍,没有合适的做法,经过不懈的探索,终于找到解决方案,遂前来记录一下。

方案

添加两个属性

// 记录是否已经找到取消按钮lazy var hasFindCancelBtn: Bool = {    return false}()// 定时器(用来定时查找取消按钮)lazy var link: CADisplayLink = {    CADisplayLink(target: self, selector: #selector(findCancel))}()复制代码

提供查找并设置取消按钮的方法

func findCancel() {    let btn = searchBar.value(forKey: "_cancelButton") as AnyObject    if btn.isKind(of: NSClassFromString("UINavigationButton")!) {        LXFLog("就是它")        link.invalidate()        link.remove(from: RunLoop.current, forMode: .commonModes)        hasFindCancelBtn = true        let cancel = btn as! UIButton        cancel.setTitleColor(UIColor.red, for: .normal)        cancel.setTitleColor(UIColor.orange, for: .highlighted)    }}复制代码

代理方法

设置代理为当前控制器,并实现代理方法

searchBar.delegate = self复制代码
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {    if !hasFindCancelBtn {        link.add(to: RunLoop.current, forMode: .commonModes)    }}复制代码

效果

附上相关项目:

转载地址:http://dlfxa.baihongyu.com/

你可能感兴趣的文章
如何设计高扩展的在线网页制作平台
查看>>
Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面
查看>>
Swift 5将强制执行内存独占访问
查看>>
中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?
查看>>
深度揭秘腾讯云低功耗广域物联网LPWAN 技术及应用
查看>>
与Jeff Sutherland谈敏捷领导力
查看>>
More than React(四)HTML也可以静态编译?
查看>>
React Native最佳学习模版- F8 App开源了
查看>>
云服务正在吞噬世界!
查看>>
阅读Android源码的一些姿势
查看>>
Web语义化标准解读
查看>>
一份代码构建移动、桌面、Web全平台应用
查看>>
高性能 Lua 技巧(译)
查看>>
区分指针、变量名、指针所指向的内存
查看>>
异步编程的世界
查看>>
最近话题火爆的四件事你知道不?
查看>>
SpringBoot整合MyBatis
查看>>
云计算产业如何率先推行信用管理?
查看>>
Android 类库书签更新(一)
查看>>
Unity3D Input按键系统
查看>>