Как сделать UITextView "Готово" кнопку resignFirstResponder?
Я пытаюсь сделать мой редактируемый UITextView
отставку клавиатуры (resignFirstResponder
), когда пользователь нажимает "Готово". Используя UITextField
, я смог сделать это со следующим кодом:
- (IBAction)doneEditing:(id)sender {
[sender resignFirstResponder];
}
... и затем привязать его к соответствующему UITextField
в Interface Builder к действию "Закончено на выходе".
Однако, с UITextView
, я не могу получить доступ к действию "Закончено на выходе". Любые предложения о том, как это сделать?
Ответы
Ответ 1
новый ответ
В вашем представлении у вас будет UIBarButton ( "Готово" ), который подключен к IBAction ниже:
- (IBAction)doneEditing:(id)sender {
[textView resignFirstResponder];
}
Где textView - это ваша текстовая точка, определенная в вашем .h файле, и подключенная в Storyboard или .xib файле. Вот так:
@property (retain, nonatomic) IBOutlet UITextView *textView;
старый ответ
Проверьте следующее:
- Указан ли UITextViewDelegate в .h
- Внедрить метод делегирования для uitextview: textViewShouldEndEditing, верните YES
- убедитесь, что ваш .m(контроллер) - это делегат для uitextview в IB
- resignFirstResponder теперь должен работа.
Ответ 2
Принятый ответ не помог мне. Вместо этого следует вызвать следующий метод делегата следующим образом:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]){
[textView resignFirstResponder];
return NO;
}else{
return YES;
}
}
Вставьте это в класс, который вы назначаете как делегат UITextView, и он будет работать.
Ответ 3
Чтобы кнопка done отменила клавиатуру и resignFirstResponder
, вам нужно реализовать метод делегата.
-
В вашем .h реализовано UITextFieldDelegate
@interface YourViewController : UIViewController <UITextFieldDelegate>
-
Затем реализуем textFieldShouldReturn в вашем .m
-(BOOL) textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
-
Не забудьте связать делегат UITextField с файлом Owner (очень важно)