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

时间:2011-12-22 18:56:35

标签: objective-c uisearchbar didselectrowatindexpath autocorrect

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

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

有什么想法?在此先感谢。

1 个答案:

答案 0 :(得分:17)

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

searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

问题将得到解决。