Ios 如何使用UITextField的标记字段使其成为第一响应者

Ios 如何使用UITextField的标记字段使其成为第一响应者,ios,objective-c,tags,uitextfield,first-responder,Ios,Objective C,Tags,Uitextfield,First Responder,我有几个UITextfields,我正在尝试将第一个响应程序设置为其标记应等于0的第一个UITextField 这就是我试图在代码中实现这一点的方式 [[self.cutField viewWithTag:0] becomeFirstResponder]; 但问题是,这个UITextField永远不会成为第一响应者。对我来说,它工作得很好,在textFieldShouldReturn委托方法中,您可以使用委托方法中指定的textField对象以及您想要辞职的textField标记。您还可以使用

我有几个UITextfields,我正在尝试将第一个响应程序设置为其标记应等于0的第一个UITextField

这就是我试图在代码中实现这一点的方式

[[self.cutField viewWithTag:0] becomeFirstResponder];

但问题是,这个UITextField永远不会成为第一响应者。

对我来说,它工作得很好,在textFieldShouldReturn委托方法中,您可以使用委托方法中指定的textField对象以及您想要辞职的textField标记。您还可以使用您想要辞职的textField的对象([cutField辞职FirstResponder])


如果您不使用IB,您必须以编程方式为每个文本字段设置标记。

[self.cutField becomeFirstResponder]应该可以工作

您不需要子视图,因为textfield是UIView

您可以使用它的父视图,例如在控制器类中

-(void) viewDidLoad {
 [[self.view viewWithTag:0]  becomeFirstResponder];
}

这有意义吗?

-viewWithTag:method返回UIView对象,因此需要显式转换其类型:

@interface TextInputVC ()

@property (nonatomic, strong) UITextField    *inputTextView;

@end

- (void)viewDidLoad {
    self.inputTextView                   = [[UITextField alloc] initWithFrame:CGRectMake(10, 10, 300, 100)];
    self.inputTextView.backgroundColor   = [UIColor clearColor];
    self.inputTextView.delegate          = self;
    self.inputTextView.tag               = 1000;
    self.inputTextView.text              = self.fieldTextValue;
    [self.view addSubview:self.inputTextView];

    // [inputTextView becomeFirstResponder];
    [self showKeyboard];
}

-(void) showKeyboard {
    UITextField *textfield  = (UITextField *)[self viewWithTag:1000];
    [textfield becomeFirstResponder];
}
    UITextField *yourTextField = (UITextField *)
    [self.view viewWithTag:0];

 // now set to first responder
  [yourTextField becomeFirstResponder];
使用以下命令:

[(UITextField*)self.cutField viewWithTag:0] becomeFirstResponder]

你可以尝试使用大于0的标记吗?我刚刚尝试使用1和2,但它不起作用。很明显,只要我触摸文本字段,所有内容都正常工作。但是是的。文本字段是
self的子视图。cutField
?0是任何视图的默认标记。只需打印
[self.cutField viewWithTag:0]
,可能此视图不是您的文本字段。您是否调用了委托方法?如果不是,则调用self.cutField.delegate=self;此代码有效,因为
viewWithTag:
从接收者开始搜索。所有视图的默认标记均为0。因此调用
[someView viewWithTag:0]只要
someView
没有其他特定的标记,就会返回
someView`。这是毫无意义的。但是为什么要在这里调用
viewWithTag:
?为什么不直接调用
[textField resignFirstResponder]
文本域不会有任何文本域子视图。不。调用
辞职FirstResponder
只会辞职你调用它的文本域。此外,无论如何,只有一个文本域可以是第一个响应者。你在回答中发布的代码中不需要使用标记。嘿,maddy,我知道,这是我在上面的评论。但是我回答了他想使用标记的问题。当方法被称为textField时使用此代码在我记录它时返回为null。将UITextView更改为UITextField@hussainShabbir:thks更改为UItextField
[(UITextField*)self.cutField viewWithTag:0] becomeFirstResponder]