禁用按钮,直到所有文本字段都已填充 Xcode

Disable Button until all textfields have been Filled Xcode

我到处寻找这个答案,但我还没有得到一个简单易懂的答案。我有 8 个文本字段需要填写,然后才能单击并提交,然后才能进入下一页。我已经连接了每个文本字段以查看 controller.h 文件,但我不知道如何轻松地逐步禁用提交按钮。非常感谢您的提前帮助。

我在之前的 post 中尝试过这个,但我无法让它工作..

为每个 UITextField 创建一个 Outlet,并在您的 .h 中创建一个 IBAction:

IBOutlet UITextField *textField1;
IBOutlet UITextField *textField2;
IBOutlet UITextField *textField3;
IBOutlet UIButton *button

- (IBAction)editingChanged;

连接所有插座并将 IBAction 连接到每个带有 editingChanged 的​​文本字段:

 - (IBAction)editingChanged {
    if ([textfield1.text length] != 0 && [textfield2.text length] != 0 && [textfield3.text length] != 0) {
         [button setEnabled:YES];
     }
     else {
         [button setEnabled:NO];
     }
 }

请注意,您也可以使用 [textfield.text isEqualToString:@""] 并放置一个 !在它前面(!表示 objective-c 中的 'not')识别空文本字段,并说 'if the textField is empty do...'

- (void)viewDidLoad {
    [super viewDidLoad];
    [button setEnabled:NO];
}

我建议您阅读 documentation 关于连接插座的内容。

要处理文本字段中的更改,您的视图控制器 class 可以符合 UITextFieldDelegate 协议,将您的视图控制器指定为每个文本字段的委托,并实现 - (BOOL)textFieldShouldReturn:(UITextField *)textField点击每个文本字段键盘上的 Return 按钮时将调用它。

试试这个,

1) 您需要为所有文本字段添加文本字段委托功能。

.h

@interface ViewController : UIViewController <UITextFieldDelegate>

.m

- (void)viewDidLoad
{
    [super viewDidLoad];

    //set submit button disable
    submitbtn.enable=NO

   textfiled1.delegate = self;
   textfiled2.delegate = self;
   textfiled3.delegate = self;
   textfiled4.delegate = self;
   textfiled5.delegate = self;
   textfiled6.delegate = self;
   textfiled7.delegate = self;
   textfiled8.delegate = self;
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
  //check your all texfield length if not equal to zero in below if(condition)
   if(alltextfiled_length != 0)
   {
     submitbtn.enable=YES
   }
   else
   {
     submitbtn.enable=NO
   } 
}