3

嗨,我很容易照顾一个 UITextField。例如,将 UITextField 的委托设置为我的视图控制器并实现这样的方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

    // Removes the keyboard from the screen
    [self.textFieldProperty1 resignFirstResponder];


    return YES;
}

但是如果我有两个 UITextField 怎么办?他们两个的代表仍然是我的视图控制器。那我该如何实现上述方法呢?像这样?

 - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {

        // Removes the keyboard from the screen
        [self.textFieldProperty1 resignFirstResponder];
        [self.textFieldProperty2 resignFirstResponder];


        return YES;
    }
4

3 回答 3

4

当您将委托传递给您的属性时更改您的方法,它将自动识别调用哪个 textField 方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

    // Removes the keyboard from the screen
    [textField resignFirstResponder];


    return YES;
}
于 2013-07-26T08:06:03.513 回答
1

就辞职第一响应者而言,这样做可以:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
}

如果您想添加更多后期处理:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];

    if (textField == self.textFieldProperty1) {
        //process property 1 here
    } else {
        // process property 2 here 
    }
}

如果您不持有对UITextField(或任何一个)对象的属性或任何其他合适的引用,那么您可以使用该UIView tag属性来识别它们并区分它们。

于 2013-07-26T08:21:07.763 回答
1

您可以使用标签更具体地每个文本字段删除方法:

if (textField.tag == 1) {
        UITextField *passwordTextField = (UITextField *)[self.view viewWithTag:2];
        [passwordTextField becomeFirstResponder];
    }
    else {
        [textField resignFirstResponder];
    }

请查看此参考以获得更多想法。 http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uitextfield-uitextfielddelegate/

于 2013-07-26T08:08:58.993 回答