我有一个包含 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/