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

Objective c 当我点击didSelectRowAtIndexPath时,UISearchBar中的自动更正会发生干扰,objective-c,uisearchbar,didselectrowatindexpath,autocorrect,Objective C,Uisearchbar,Didselectrowatindexpath,Autocorrect,我有一个可以正常工作的搜索栏。问题来了,当我在iPhone上测试时,自动更正开始生效。我将搜索栏设置为,如果查询栏中的文本长度大于4,则它将开始将内容放入searchResults数组。如果有来自自动更正的建议,而我忽略它并从数组中选择某个内容,则应用程序崩溃。我将错误追溯到这样一个事实,即自动更正的单词是在行选择之前被选择的(但两者都完成了),因此我认为正在访问的searchResults数组不再有效 例如,我在搜索栏中输入“demp”。自动更正提示“演示”。同时,搜索返回一组包含“demps

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

例如,我在搜索栏中输入“demp”。自动更正提示“演示”。同时,搜索返回一组包含“dempster”的结果。我选择第一个。当我这样做时,搜索会在“demo”下重新搜索,并清除原始数组(请记住,我会在服务器上查找搜索,以便数组不会重新填充)。然后DidSelectRowatineXrow方法触发,数组中没有任何内容,因此崩溃


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

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

searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

问题就会解决。

我也有同样的问题。我会说这是UISearchBar中的一个bug。我不同意不应该有自动更正。如果它不像在iOS中那样具有侵入性,那么它将非常有用。