我正在尝试检测@中的提到(使用UITextField)。基本上,我要做的是将用户输入的文本String转换为array,然后遍历每个项,看看是否有@前缀。出于某种原因,尽管我在提到的周围输入了较长的文本(或仅提到),但它显示了1个空字符串项。我显然做错了什么,但我不知道是什么

if let mentionsArray = self.commentTextField.text?.components(separatedBy:  CharacterSet.whitespacesAndNewlines) {

       for  mention in mentionsArray  {
           if mention.hasPrefix("@")  {
                print(mention)
           }
       }
 }

值得一提的是,这段代码是在闭包中运行的。
更新:代码实际上是有效的,但是下面的注释询问了commentTextField.text的内容是什么,它让我意识到,在达到这一点之前,我清空了文本字段的内容。

最佳答案

您的commentTextField可能是空的。检查是否正在清除任何文本字段。如果为空,components(separatedBy: CharacterSet.whitespacesAndNewlines)将返回空字符串。

关于swift - 检测UITextField中的提及不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51928339/

10-11 14:01