I have four text fields in a ViewController, and want to disable the keyboard for two of them (textField1 and textField2).

I have tried implementing the following after assigning the text fields as delegates in viewDidLoad

```
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField) {
    if ([self.textField1 isTouchInside] || [self.textField2 isTouchInside] {
        return NO;
    } else {  
        return YES;
    }
}

```

However, this disables the keyboard for the ViewController completely, so it will not appear when trying to edit textField3 and textField4. How can I get around this problem?

For example, is there a way to refresh the run textFieldShouldBeginEditing method again after editing ends on a textField?

Also, I know I can create a label to accomplish something similar, but I would prefer to use a text field in my case.

EDIT: So I left out a big detail. I am firing an IBaction when pressing textField1 and 2. However, Lootsch's answer gave me an idea.

In the textField1/2Pressed IB action, I ran the textfield.enable:NO methods, then I re-enabled them when I fired a second action which submitted data to the textfields, such as below

```
- (IBAction)textField1Pressed:(id)sender {
    self.textField.Enabled = NO;   
}

- (IBAction)submitToTextField1:(id)sender {
    self.textField.text = @"blah blah";
    self.textField.Enabled = YES;    
}

```

Albeit, this requires having two entering an exiting actions, but it worked for me. Also, I did not have to manipulate the textFieldShouldBeginEditing method with this solution.