我有一个带有“完成”按钮的自定义工具栏,用于我的文本视图的输入辅助视图。当点击这个“完成”按钮时,我想从第一响应者那里退出文本视图,所以我打电话:
[textView resignFirstResponder];
这将引发错误:
Thread 1: Program received signal: "EXC_BAD_ACCESS".
当显示自动校正时点击“完成”按钮(见下图)。即使我打电话,错误仍然存在:
if ([textView isFirstResponder] && [textView canResignFirstResponder]) [textView resignFirstResponder];
似乎文本视图是第一响应者,可以辞职,但我不能辞职。我该如何解决这个错误?谢谢你。
编辑1:我仍然想启用自动更正。
编辑 2:请看下面的捕获图像。
编辑 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];
...
}