If you have multiple text fields and don't know which one is first responder (or you simply don't have access to the text fields from wherever you are writing this code) you can call endEditing: on the parent view containing the text fields.

In a view controller's method, it would look like this:

[self.view endEditing:YES];

The parameter forces the text field to resign first responder status. If you were using a delegate to perform validation and wanted to stop everything until the text field's contents were valid, you could also code it like this:

BOOL didEndEditing = [self.view endEditing:NO];
if (didEndEditing) {
// on to the next thing...
} else {
// text field must have said to first responder status: "never wanna give you up, never wanna let you down"
}

The endEditing: method is much better than telling individual text fields to resignFirstResponder, but for some reason I never even found out about it until recently.

I had a UI where I had a UITextField that was first responder but a popover showing suggestions also active. Closing the keyboard with the hide button did not hide the keyboard somehow. This code helped me here, thanks! :)
– fl034Apr 30 at 15:07