当我点击 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 中的自动更正会干扰的主要内容,如果未能解决你的问题,请参考以下文章

具有多个视图控制器的 UITableView

从Swift数组中的选定复选标记中删除字符串

当我第一次快速点击按钮时,按钮点击不适用于 UITapGestureRecognizer

当我点击带有动画的搜索栏时,iOS隐藏导航栏

为啥当我点击文本字段时工具栏不显示?

寻找 iOS VoiceOver 辅助功能指南:当我点击文本时,它应该说多少?