当我点击didSelectRowAtIndexPath时,UISearchBar中的自动更正会发生干扰

Nel*_* Ko 9 objective-c autocorrect uisearchbar didselectrowatindexpath

我有一个通常有效的搜索栏.当我在iPhone上测试时出现问题,自动更正开始了.我设置了搜索栏,如果查询栏中的文本长度> 4,则会开始将内容放入searchResults数组中.如果有来自自动更正的建议,我忽略它并从数组中选择一些东西,应用程序崩溃了.我将错误追溯到这样一个事实,即在行选择之​​前选择了自动更正的字(但都完成了),因此我认为我正在访问的searchResults数组不再有效.

例如,我将"demp"放入搜索栏.自动更正建议"演示".同时,搜索返回一堆带有"dempster"的结果.我选择第一个.当我这样做时,搜索在"demo"下重新搜索并清除原始数组(请记住,我在服务器上查找搜索,因此数组没有重新填充).然后didSelectRowAtIndexRow方法触发,数组中没有任何内容,它崩溃了.

有什么想法吗?提前致谢.

Eug*_*ene 17

由于您使用的是搜索栏,因此不应该进行自动更正,人们希望找到他们正在寻找的内容,而不是某些字典要求他们查找的内容.简单的设置

searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
Run Code Online (Sandbox Code Playgroud)

问题将得到解决.