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.
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.
[myTextField resignFirstResponder];
(And this isn't the first time I've answered that here, ie please try searching before asking).
In my view:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
// pass touches up to viewController
[self.nextResponder touchesBegan:touches withEvent:event];
}
In my viewcontroller:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (keyboardShown && [touch view] != self.TextView)
{
[self.TextView resignFirstResponder];
}
[super touchesBegan:touches withEvent:event];
}
- (void)keyboardWasShown:(NSNotification*)aNotification
{
keyboardShown = YES;
}
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.