use*_*329 3 iphone macos cocoa cocoa-touch objective-c
我无法弄清楚哪个UITextField是当前的第一响应者.
我想要做的是设置一个布尔值,如果用户点击特定的UITextField.所以要做到这一点,我需要能够判断这个特定的文本字段是否已成为第一个响应者.
我知道如何设置第一个响应者,但不知道如何判断一个字段是否真的成为第一个响应者.
Ste*_*eve 25
[...]但只是不确定如何判断一个领域是否真的成为第一个响应者.
UIView继承了告诉你的isFirstResponder方法UIResponder.
查找第一响应者的最简单方法是不检查单个控件/视图,并且没有针对所有不同类型的可能第一响应者的多个方法,只需创建一个类别,UIView其中添加了一个findFirstResponder方法:
UIView的+ FirstResponder.h
#import <UIKit/UIKit.h>
@interface UIView (FirstResponder)
- (UIView *)findFirstResponder;
@end
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9817 次 |
| 最近记录: |