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

iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的: 
 
这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,这里举例当点击search按钮的时候,回收键盘的同时让取消按钮的可以点击,在代理方法里面添加代码如下:

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [searchBar resignFirstResponder]; //searchBar失去焦点
    UIButton *cancelBtn = [searchBar valueForKey:@"cancelButton"]; //首先取出cancelBtn
    cancelBtn.enabled = YES; //把enabled设置为yes
}

这样就可以了

时间: 2024-10-07 00:45:42

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

iOS开发时获取第一响应者

上篇中提到键盘相应时间中用到了获取当前第一响应者的方法是苹果的是有方法,无法上传到App Store,本文将介绍一种非常简单的且未用到私有API的方法来获取当前第一响应者. 实现思路:用到的iOS API就是 - (BOOL)sendAction:(SEL)action to:(id)target from:(id)sender forEvent:(UIEvent *)event  利用该API,只要将传入的target设置为nil,则系统会自动顺着响应链查找能够响应action的响应者.我们只

ios 获取当前视图第一响应者

Football on Table 题意:一些杆上有人,人有一个宽度,然后现在有一个球射过去,要求出球不会碰到任何人的概率 思路:计算出每根杆的概率,之后累乘,计算杆的概率的时候,可以先把每块人的区间长度再移动过程中会覆盖多少长度累加出来,然后(1?总和/可移动距离)就是不会碰到的概率 代码: #include <stdio.h> #include <string.h> #include <math.h> const double eps = 1e-8; int t,

iOS开发项目篇—04添加导航栏的按钮

iOS开发项目篇—04添加导航栏的按钮 一.设置导航栏的按钮 要求实现的效果:             说明:默认状态下和高亮状态下的图片是不一样的. 按钮的图片需要设置默认状态和高亮状态时的显示,系统了提供的下面方法 viewController.navigationItem.leftBarButtonItem=[UIBarButtonItem alloc]initWithImage:<#(UIImage *)#> style:<#(UIBarButtonItemStyle)#>

jquery嵌套后会触发2次点击事件, jquery的unbind就是卸载这个点击事件的.

$("#diva").click(function(){ $("#divb").unbind("click").click(function(){ alert("www.lao8.org 提供代码."); }); }); jquery嵌套后会触发2次点击事件, jquery的unbind就是卸载这个点击事件的.

用到afinal注解的项目代码混淆后某些控件view点击事件无效问题

最近一个项目上线,要求代码混淆,可混淆后某些控件的点击事件无效,后来发现是afinal注解的问题.查了半天资料,后来又问了afinal的相关人员,他们给出的解决方案是排除混淆被注解的类,这样的话意味着基本所有的activity和fragment都不能混淆,这不是我想要的. 后来反编译代码比较排除被注解的类和不排除被注解类的区别,比较发现,那些不能点击的控件的定义代码被优化掉了,被优化掉的原因就是因为用注解后,在代码中该控件的实例没有其他地方用到,所以程序就认为该代码没有被用到,就被注视掉了. 知

IOS 开发之-- textfield和textview,return键的改变,点击return键

一,textfield的return键改变 方案1.改变键盘右下角的换行(enter)键为完成键,后实现代理方法键盘自动回弹 UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 300, 200, 40)]; [self.view addSubview:textField]; textField.delegate = self; textField.returnKeyType = UIReturnK

iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法

我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. ViewController *firstVC = [[ViewController alloc] init]; UIN

ios 开发日记19-应用提交申请后加急审核

之前只是听过加急审核这回事,一直也没有用到过.昨天用了下果然很给力.昨天晚上将近8点(北京时间)提交应用,今天早上上班看了下已经通过了审核,而且可以在AppStore里下载到. 话说加急的原因比较悲催,年前一直在做老版本的更新(一直在改别人代码的bug),临过年一周多的时候说不改了,做新版本的.心里终于舒服些,开始自己写新版本.2月7号上班到2月18号一直在做新版本.就在经理天天催,老板经常问进度的时候,实施那边说xxx那边20号要验收,验收不过要打官司了…… 然后开始悲催的继续找到以前别人的代

iOS开发之隐藏tabbar--解决隐藏后依然不能响应对应位置事件的问题

状态条StatusBar 1 [UIApplication sharedApplication].statusBarHidden = YES; 导航条NavigationBar 1 [self.navigationController setNavigationBarHidden:YES]; TabBar 方法1 1 [self.tabBarController.tabBar setHidden:YES]; 这个方法有问题,虽然tabBar被隐藏了,但是那片区域变成了一片空白,无法被其他视图使用