Правильный способ справиться с этим - добавить готовую кнопку в inputAccessoryView
к UITextView
.inputAccessoryView
- это строка, которая иногда появляется над клавиатурой.
Чтобы реализовать inputAccessoryView
, просто добавьте этот метод (или его вариант) и вызовите его как viewDidLoad
.
- (void)addInputAccessoryViewForTextView:(UITextView *)textView{
//Create the toolbar for the inputAccessoryView
UIToolbar* toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
[toolbar sizeToFit];
toolbar.barStyle = UIBarStyleBlackTranslucent;
//Add the done button and set its target:action: to call the method returnTextView:
toolbar.items = [NSArray arrayWithObjects:[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(returnTextView:)],
nil];
//Set the inputAccessoryView
[textView setInputAccessoryView:toolbar];
}
Затем обработайте нажатую кнопку, реализовав метод действия, который вы вызвали с помощью resignFirstResponder
.
- (void) returnBreakdown:(UIButton *)sender{
[self.textView resignFirstResponder];
}
Это должно привести к появлению рабочей кнопки «Готово» в стандартнойПанель инструментов над клавиатурой.