9

我有一个通常可以工作的搜索栏。当我在 iPhone 上测试时,问题出现了,自动更正开始了。我设置了搜索栏,如果查询栏中的文本长度 > 4,那么它开始将内容放入 searchResults 数组。如果有来自自动更正的建议,而我忽略它并从数组中选择某些内容,则应用程序崩溃。我将错误追溯到在行选择之​​前选择了自动更正的单词(但都完成了),所以我认为我正在访问的 searchResults 数组不再有效。

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

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

4

1 回答 1

18

由于您使用的是搜索栏,因此应该没有自动更正功能,人们希望找到他们正在寻找的内容,而不是某些字典告诉他们要查找的内容。简单设置

searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

问题将得到解决。

于 2011-12-22T20:22:24.580 回答