当我点击 didSelectRowAtIndexPath 时,UISearchBar 中的自动更正会干扰
Posted
技术标签:
【中文标题】当我点击 didSelectRowAtIndexPath 时,UISearchBar 中的自动更正会干扰【英文标题】:autocorrect in UISearchBar interferes when I hit didSelectRowAtIndexPath 【发布时间】:2012-01-26 08:51:46 【问题描述】:我有一个通常可以使用的搜索栏。当我在 iPhone 上测试时,问题出现了,自动更正开始了。我设置了搜索栏,如果查询栏中的文本长度 > 4,那么它开始将内容放入 searchResults 数组。如果有来自自动更正的建议并且我忽略它并从数组中选择某些内容,则应用程序崩溃。我将错误追溯到这样一个事实,即在选择行之前选择了自动更正的单词(但都完成了),所以我认为我正在访问的 searchResults 数组不再有效。
例如,我在搜索栏中输入了“demp”。自动更正建议“演示”。同时,搜索返回一堆带有“dempster”的结果。我选择第一个。当我这样做时,搜索在“演示”下重新搜索并清除原始数组(请记住,我在服务器上查找搜索,因此数组没有重新填充)。然后 didSelectRowAtIndexRow 方法触发,数组中没有任何内容,它崩溃了。
有什么想法吗?提前致谢。
【问题讨论】:
我遇到了同样的问题。我会说这是 UISearchBar 中的一个错误。 【参考方案1】:由于您使用的是搜索栏,因此应该没有自动更正功能,人们希望找到他们正在寻找的内容,而不是某些字典告诉他们要查找的内容。简单设置
searchBar.autocorrectionType = UITextAutocorrectionTypeNo;
问题就解决了。
【讨论】:
我不同意不应该有自动更正。如果它不像在 ios 中那样具有侵入性,那将会很有用。以上是关于当我点击 didSelectRowAtIndexPath 时,UISearchBar 中的自动更正会干扰的主要内容,如果未能解决你的问题,请参考以下文章