You can try something similar to this:
- (void)textFieldDidBeginEditing:(UITextField *)textField { UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditing)]; [[self navigationItem] setRightBarButtonItem:doneButton]; [doneButton release]; }
and
- (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditing)]; [[self navigationItem] setRightBarButtonItem:doneButton]; [doneButton release]; } *) textView - (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditing)]; [[self navigationItem] setRightBarButtonItem:doneButton]; [doneButton release]; } ] initWithBarButtonSystemItem: UIBarButtonSystemItemDone - (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditing)]; [[self navigationItem] setRightBarButtonItem:doneButton]; [doneButton release]; } ]; - (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditing)]; [[self navigationItem] setRightBarButtonItem:doneButton]; [doneButton release]; }
with the following settings as you like
- (void)doneEditing { [[self view] endEditing:YES]; } ]; - (void)doneEditing { [[self view] endEditing:YES]; }
then delete the button in - (void)textFieldDidEndEditing:(UITextField *)textField , as well as in - (void)textViewDidEndEditing:(UITextView *)textView *) textView
Do not forget to set the delegates!
source share