检查当前的响应者?

时间:2012-04-04 23:58:32

标签: ios xcode cocoa-touch

我正在制作一个应用程序,需要使用带有数字键盘的多个textFields作为第一响应者。我创建了一个用作负片的图像,它将成为数字键盘的补充。

我想知道是否有办法检查数字键盘输入的textField。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

如果所有潜在的第一响应者都是UITextFields,另一种方法是将您的控制器类符合UITextFieldDelegate协议,然后在开始编辑时获取对当前编辑的UITextView的引用。 在你的.h:

中表达你的课程
MyController : NSObject <UITextFieldDelegate>  //Might often be a UIViewController rather than an NSObject subclass...

定义属性:

@property (weak, nonatomic) UITextField *editingField;

然后在.m中合成:

@synthesize editingField = __editingField

然后执行:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    [self setEditingField:textField];
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self setEditingField:nil];
}

现在,只要您想知道哪个文本字段是您的第一响应者:

UITextField *firstResponder = [self editingField];

答案 1 :(得分:0)

如果只有有限数量,可以使用[textFieldN isFirstResponder]查询每个。如果您想要一个通用实用程序,您可以查看视图中的每个子视图,看看它是第一个响应者,还是它的任何子视图在层次结构的下方。