テキストビューの入力アクセサリビュー用の「完了」ボタンを備えたカスタムツールバーがあります。この「完了」ボタンがタップされたら、最初のレスポンダーからテキストビューを辞任したいので、次のように呼び出します。
[textView resignFirstResponder];
これはエラーをスローします:
Thread 1: Program received signal: "EXC_BAD_ACCESS".
自動補正が表示されている間に「完了」ボタンがタップされたとき(下の画像を参照)。エラーはまだ私が呼んでも:
if ([textView isFirstResponder] && [textView canResignFirstResponder]) [textView resignFirstResponder];
テキストビューがファーストレスポンダーのようで、辞任できるようですが、辞任できません。このエラーを解決するにはどうすればよいですか? ありがとうございました。
編集 1: 自動修正を有効にしたい。
編集2:下のキャプチャ画像を見てください。
Zombies
編集 3:スキーム設定でオンにした後、ログに記録されるメッセージは次のとおりです。
-[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];
...
}