我无法确定哪个 UITextField
是当前的 First Responder。
我想做的是在用户点击特定的 UITextField
时设置一个 bool 值。因此,要做到这一点,我需要能够判断这个特定的文本字段是否已成为第一响应者。
我知道如何设置第一响应者,但不确定如何判断一个字段是否真的成为第一响应者。
最佳答案
[...] but just not sure how to tell if a field has actually become the first responder.
UIView
从 UIResponder
继承了 isFirstResponder
方法,它告诉您这一点。
无需检查各个控件/ View 并且无需针对所有可能的第一响应者的不同类型的多种方法即可找到第一响应者的最简单方法是在 UIView
上创建一个类别,其中添加findFirstResponder
方法:
UIView+FirstResponder.h
#import <UIKit/UIKit.h>
@interface UIView (FirstResponder)
- (UIView *)findFirstResponder;
@end
UIView+FirstResponder.m
#import "UIView+FirstResponder.h"
@implementation UIView (FirstResponder)
- (UIView *)findFirstResponder
{
if ([self isFirstResponder])
return self;
for (UIView * subView in self.subviews)
{
UIView * fr = [subView findFirstResponder];
if (fr != nil)
return fr;
}
return nil;
}
@end
关于iphone - 在 Objective C 中获取第一响应者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772468/