仅对单元格中的两个文本字段启用了按钮,这两个文本字段都在其中输入了文

时间:2013-07-03 11:58:36

标签: ios cocoa-touch uitextfield uibarbuttonitem

我在UITextfield中的cells中有两个section中有grouped UITableViewemailField,其中passwordFieldtag已设置UIBarButtonItem {1}}为0和1.我在loginButton的右边缘有一个名为navigationBar的{​​{1}}。我希望当此视图进入屏幕时按钮被禁用,并且当textFields在其中输入文本时希望按钮被启用,否则按钮被禁用。

这是创建按钮的代码。

_loginButton = [[UIBarButtonItem alloc] initWithTitle:@"Login"
                                                   style:UIBarButtonItemStyleDone
                                                   target:self
                                                   action:@selector(logging)];

    _loginButton.enabled = NO;
    self.navigationItem.rightBarButtonItem = _loginButton;

UITextField textFieldDidBegingEditing:方法中,我尝试实现此功能。但它没有工作或工作不正确,这很奇怪。注意:textFields添加为cell的{​​{1}}而不是subview cell contentView's

subview

我也尝试在按钮选择器方法中实现此功能,但它根本不起作用。

#pragma mark - UITextfield Delegate

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (textField == self.emailField)
    {
        UITableViewCell *currentCell = (UITableViewCell *)textField.superview;
        NSIndexPath *currentIndexPath = [self.tableView indexPathForCell:currentCell];
        NSIndexPath *nextIndexPath = [NSIndexPath indexPathForRow:currentIndexPath.row+1 inSection:0];
        UITableViewCell *nextCell = [self.tableView cellForRowAtIndexPath:nextIndexPath];
        self.passwordField = (UITextField *)[nextCell viewWithTag:1];
        if ([(UITextField *)[currentCell viewWithTag:0] text].length != 0 && [(UITextField *)[nextCell viewWithTag:1] text].length != 0)
        {
            self.loginButton.enabled = YES;
        }
        else
        {
            self.loginButton.enabled = NO;
        }
    }
}

这有什么问题?

1 个答案:

答案 0 :(得分:0)

你是否将textfields delegate属性设置为self? 还有一些其他令人不安的问题,但我会先检查一下