У меня есть настраиваемая панель инструментов с кнопкой «Готово» для вспомогательного представления ввода моего текстового представления.При нажатии этой кнопки «Готово» я хочу отказаться от текстового представления от первого респондента, поэтому я вызываю:
[textView resignFirstResponder];
Это вызовет ошибку:
Thread 1: Program received signal: "EXC_BAD_ACCESS".
, когдаКнопка «Готово» нажимается во время отображения автокоррекции (см. Изображение ниже).Ошибка все еще даже я называю:
if ([textView isFirstResponder] && [textView canResignFirstResponder]) [textView resignFirstResponder];
Кажется, что текстовое представление является первым респондентом и может быть отказано, но я не могу отказаться от него.Как я могу решить эту ошибку?Спасибо.
Редактировать 1: Я все еще хочу включить автокоррекцию.
Редактировать 2: Пожалуйста, взгляните на изображение ниже.
![auto correction is shown](https://i.stack.imgur.com/ZQfHV.png)
Редактировать 3: После включения Zombies
в настройках схемы, зарегистрированное сообщение:
-[TIZephyrCandidate wordOriginFeedbackID]: message sent to deallocated instance 0x52bbc50
, но я не знаю, что означает это сообщение и что делать дальше.
Редактировать 4: метод отставки первого респондента будет вызван, когда кнопка «Готово» внутри кнопки добавлена цель и действие следующей строки кода:
[doneButton addTarget:self action:@selector(resignAllFirstResponders) forControlEvents:UIControlEventTouchUpInside];
который resignAllFirstResponders
:
- (void)resignAllFirstResponders
{
...
if ([textView canResignFirstResponder] && [textView isFirstResponder])
[textView resignFirstResponder];
...
}