objective-c - 启用和禁用 UIBarButtonItem

标签 objective-c ios ios6 uibarbuttonitem

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

非常感谢, 马科斯。

最佳答案

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

// 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.
    }
}

编辑:

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

关于objective-c - 启用和禁用 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772524/

相关文章:

iphone - iphone 应用程序中的 uigesturerecognizer

objective-c - 如何在一个实体(控件)中组合多个 iOS 控件?

ios - 查询 Firebase iOS 最有效的方法

xcode - UIPageViewController 自动滚动

ios - 覆盖 loadView 会导致 viewDidLoad 和 loadView 在每次出现 VC 时触发

objective-c - NSTextFieldCell 坐标

ios - 有没有办法看到每次调用NSLog的时候以及NSLog的内容?

ios - 如何在 iOS Extension 中获取状态栏高度

javascript - 在 iPhone 上使用 Google Chrome 下载 ICS 文件

ios - 如何将我的旧应用程序更新到 iPhone 5?