Hiding the Keyboard when losing focus on a UITextView

tuzzolotron picture tuzzolotron · Sep 21, 2009 · Viewed 41.5k times · Source

So I have a UITextView that I'm using to allow the user to submit some text.

My problem is, I can't seem to figure out how to allow the user to 'Cancel' by tapping away from the UITextView.

Answer

ohhorob picture ohhorob · Oct 12, 2009

Simplifying tuzzolotron's answer: Where the following outlet is properly connected in your xib

    IBOutlet UITextView *myTextView;

Use this in the view controller:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [[event allTouches] anyObject];
    if ([myTextView isFirstResponder] && [touch view] != myTextView) {
        [myTextView resignFirstResponder];
    }
    [super touchesBegan:touches withEvent:event];
}

A tap on the View Controller's View, outside of the Text View, will resign the first responder, closing the keyboard.