美文网首页iOS
如何查找当前的第一响应者

如何查找当前的第一响应者

作者: Japho | 来源:发表于2016-11-08 21:57 被阅读81次

有时候总是有需求来获取当前的第一响应者,例如让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  

相关文章

  • 如何查找当前的第一响应者

    有时候总是有需求来获取当前的第一响应者,例如让TextField收键盘,隐藏视图等等操作都需要获取当前的第一响应者...

  • iOS触摸事件探究

    目录一、基本概念1.1、UITouch1.2、UIEvent1.3、UIResponder二、查找第一响应者三、响...

  • iOS事件的响应机制和传递

    主要讲解用户触摸或点击手机屏幕后产生的事件是如何派发传递的,如何查找到事件的第一响应者控件,以及找到响应者后事件是...

  • 事件处理流程--响应者链

    事件分发:自上而下响应者链:自下而上 第一响应者(First responder)指的是当前接受触摸的响应者对象,...

  • iOS知识复习笔记(9)---事件和响应链

    确定第一响应者 首先是查找第一响应者:事件产生-UIApplication-UIWindow 然后通过 hit-t...

  • iOS 事件传递

    查找响应者 hitTexst 它首先会通过调用自身的 pointInside 方法判断用户触摸的点是否在当前对象的...

  • 事件传递和响应机制,持续更新

    第一响应者查找 视图点击 UITapgesture手势点击 UIControl,UIButton点击 mark

  • iOS收起键盘无效的几种解决方案

    收起键盘的方式通常有两种:辞去当前控件的第一响应者身份或者关闭父控件的可编辑状态。 1、辞去当前控件的第一响应者身...

  • iOS事件传递和事件响应机制

    这里主要讲解记录下用户触摸点击手机屏幕后产生的事件是如何派发传递的,如何查找到适合响应事件的第一响应者控件,以及找...

  • 响应链(二)

    应者链如何决定第一响应者???? Determining an Event's First Responder U...

网友评论

    本文标题: 如何查找当前的第一响应者

    本文链接:https://www.haomeiwen.com/subject/gxlzuttx.html