Я пытаюсь закрыть клавиатуру, когда пользователь нажимает «отменить» UIBarButtonItem. Однако, когда я нажимаю кнопку отмены, я получаю SIGABRT с ошибкой «нераспознанный селектор отправлен в экземпляр».
Мой код для создания кнопки отмены:
- (void)keyboardWasShown:(NSNotification*)aNotification
{
//Add cancel button to navigation bar
UIBarButtonItem *dismissKeyboardBttn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(dismissKeyboard:)];
self.navigationItem.rightBarButtonItem = dismissKeyboardBttn;
}
И чтобы убрать клавиатуру у меня есть этот метод:
- (void)dismissKeyboard:(id)sender
{
[activeField resignFirstResponder];
//^^This line causes the SIGABRT^^
}
Это кажется довольно простым. Есть идеи?
UPDATE: activeField - это просто UITextField, который я использую для перемещения моего scrollView в UITextField, который пользователь в данный момент редактирует. Это устанавливается в этих двух методах:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
activeField = textField;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
activeField = nil;
}
ОБНОВЛЕНИЕ 2: Интересно, я зарегистрировал свой ViewController для получения уведомлений клавиатуры, и когда я пытаюсь отклонить клавиатуру, используя метод "textFieldShouldReturn", я получаю ту же ошибку. Вот мой код textFieldShouldReturn:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField canResignFirstResponder])
{
[textField resignFirstResponder];
}
return YES;
}