如何查找当前的第一响应者
来源:互联网 发布:军事指挥书籍知乎 编辑:程序博客网 时间:2024/05/09 13:55
有时候总是有需求来获取当前的第一响应者,例如让TextField收键盘,隐藏视图等等操作都需要获取当前的第一响应者,那么该如何获取呢?
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];NSLog(@"%@",firstResponder);
注意:这个方法虽然简单,但是调用了私有API在平时调试的时候可以使用这种方法,但是打包上线的时候需要把该方法屏蔽掉,不然极有可能被打回。
下面介绍下现在公认比较好的一种方法:
建立分类UIResponder+FirstResponder
//// UIResponder+FirstResponder.h// BobcareDoctorApp//// Created by Japho on 16/3/23.// Copyright © 2016年 com.01wisdom. All rights reserved.//#import <UIKit/UIKit.h>@interface UIResponder (FirstResponder)+ (id)currentFirstResponder;@end
//// UIResponder+FirstResponder.m// BobcareDoctorApp//// Created by Japho on 16/3/23.// Copyright © 2016年 com.01wisdom. All rights reserved.//#import "UIResponder+FirstResponder.h"static __weak id currentFirstResponder;@implementation UIResponder (FirstResponder)+ (id)currentFirstResponder { currentFirstResponder = nil; [[UIApplication sharedApplication] sendAction:@selector(findFirstResponder:) to:nil from:nil forEvent:nil]; return currentFirstResponder;}- (void)findFirstResponder:(id)sender { currentFirstResponder = self;}@end
0 0
- 如何查找当前的第一响应者
- 获得当前窗口第一响应者
- ios 获取当前视图第一响应者
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- 如何获取当前视图中成为第一响应者的组件,并取消注册
- iOS 获取当前页面第一响应者(FirstResponder)
- 如何查找当前活动的frame路径
- 返回第一响应者的方法
- iOS 找到视图的第一响应者
- iOS 获取界面的第一响应者
- 找出界面的第一响应者,让键盘消失
- UIScrollView上面添加的uiftextfield如何失去第一响应者
- findFirstResponder(找到第一响应者)
- Z字形扫描 201412-2
- 科赛网 魔镜杯“风控算法比赛”赛后总结
- java序列化和serialVersionUID
- 汉诺塔问题
- Hibernate使用mysql时type=InnoDB报错
- 如何查找当前的第一响应者
- performSelector withObject afterDelay 在子线程上调用不运行
- sqlite数据类型大全
- add deployment 没有自动 Deploy location
- ionic 拍照选择本地图片
- asp.net中Button按钮点击两次才执行Onclick事件的原因
- http幂等性
- Spring-RMI固定端口
- 数组与ArrayList的关联与区别