Question

I'm using a UITextView and want to keep the normal usage of Return key, i.e. to insert a new line. But how do I dismiss the keyboard when I can't use the Return key for that?

Was it helpful?

Solution

A lot of people add a UIToolbar with a Done button on it above the keyboard. This is how the Safari app does it as well and in my opinion it is the best way to handle this situation. See a pic here.

To dismiss the keyboard, you just have to do [textField resignFirstResponder];.

Here is an okay example of how to add the UIToolbar when the keyboard shows/hides.

OTHER TIPS

How the user triggers it is a design decision: another button, a swipe gesture?

When it's triggered, call:

[self.textView resignFirstResponder];

You could just use a background tap to hide the keyboard.

A good way to Dismiss keyboard.

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    //NSLog(@"ShouldBeginEditing");

    if(textView == indexOneTW)
    {
          here use uibutton and set its target to a method which contains 
          [urTextView resignFirstResponder] 
    }

    return TRUE;
}

Make sure you declare support for the UITextViewDelegate protocol.

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:     (NSString *)text

{

    if([text isEqualToString:@"\n"]) 
    {
        [textView resignFirstResponder];

        return NO;
    }

    return YES;

}

Enjoy Buddy with this code....

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top