启用和禁用UIBarButtonItem

vil*_*lam 0 objective-c uibarbuttonitem ios ios6

我有一个带有6个UITextFields的屏幕和一个名为"Done"的UIBarButtonItem.一旦用户在6个UITextField中的任何一个上键入任何内容,我想启用名为"Done"的UIBarButtonItem,并且如果用户删除内容,我想将我的UIBarByttonItem称为"done"以禁用模式.我想应用Apple在iphone议程中添加新联系人时应用的相同规则.只要您输入任何信息,您就可以点击"完成".有什么聪明的方法吗?

非常感谢,马科斯.

rma*_*ddy 5

每当更改文本字段时,您都需要设置要调用的方法.将相同的方法应用于所有文本字段.在该方法中,您检查文本字段是否包含文本.根据该检查,您可以启用或禁用该按钮.

// Do this for each text field.
[textField addTarget:self action:@selector(textFieldChangedAction:) forControlEvents:UIControlEventEditingChanged];

- (void)textFieldChangedAction:(UITextField *)textField {
    if (textField.text.length) {
        // enable button
    } else {
        // In this method, check every text field for text. If any have text, enable button
        // If none have text, disable button.
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

您将需要一个实例变量用于所有文本字段,以便您可以访问所有文本字段以查看是否应禁用该按钮.