Done key in iPhone app that closes keyboard (with UITextView)

Tapy picture Tapy · Jan 15, 2011 · Viewed 15.8k times · Source

I'm working on an iPhone app and in the iPhone app the user is typing in an UITextView. I was wondering how I could add the done key on the keyboard instead of having the normal return key and when you click on that key the keyboard closes.

Thanks!

Answer

omz picture omz · Jan 15, 2011

There is no -textViewShouldReturn: method in the UITextViewDelegate protocol. If you want the return (done) key to dismiss the keyboard, it's probably best to use a UITextField instead, UITextView is intended for editing multiple lines of text (so you need a way to enter a linebreak).

If you really want to dismiss the keyboard when hitting the return key in a UITextView, you could probably do something like this:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
  if ([text isEqual:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
  }
  return YES;
}