Disabling Keyboard

2019-08-24 01:25发布

问题:

How to Hide Keyboard by pressing Returnkey

回答1:

There is a couple of things you need to remember. The number #1 part developers forget to set is the delegate of the textField.

If you are using the Interface Builder, you must remember that you need to set the delegate of the textField to the file Owner.

alt text http://www.thoughtblog.com/imgs/delegate.png

If you are not using Interface Builder then make sure you set the delegate of the textfield to self. I also include the returnType. For Example if the textField was called gameField:

gameField.delegate = self;
gameField.returnType = UIReturnKeyDone;

You must also implement the UITextFieldDelegate for your ViewController.

@interface YourViewController : UIViewController <UITextFieldDelegate> 

Finally you need to use the textFieldShouldReturn method and call [textField resignFirstResponder]

   -(BOOL) textFieldShouldReturn:(UITextField*) textField {
    [textField resignFirstResponder]; 
    return YES;
}

All your textFields will use this same method so you only need to have this setup once. As long as the delegate is set for the textField, the UITextFieldDelegate is implemented for the interface, you add the textFieldShouldReturn method and call the resignFirstResponder your set.



回答2:

The keyboard only shows up when something editable (usually a UITextField) has become the first responder. Therefore, to make the keyboard go away, you have to make the textField not be the firstResponder anymore. Fortunately, it's one line of code:

[myTextField resignFirstResponder];


回答3:

You really need to include more information with your question, but I think this might be what you are looking for:

First, make your view controller implement the UITextFieldDelegate:

@interface MainViewController : UIViewController <UITextFieldDelegate> {

Then add this method to the controller:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder]; 
    return YES;
}

Read the UITextFieldDelegate documentation to see what else you can do.



回答4:

Use these two methods:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        activeTextField = textField;   
        return YES;
  }

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
        activeTextField = nil; 
        [txtPassword resignFirstResponder];
        [txtUserName resignFirstResponder];
        return YES;
  }

Please make sure you have given delegates to each textfields. For that you should go to the view. Right click . set the delegate to view.