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

这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,我们通过改变isEnabled属性来实现控制是否可以点击的状态,代码如下:
func showSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
//searchBar失去焦点
let cancelBtn = searchBar.value(forKey: "cancelButton") as? UIButton
//首先取出cancelBtn
cancelBtn?.isEnabled = true
//把enabled设置为yes
}
这样就可以了

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