键入(Swift)时如何计算实时的UITextField单词数?

时间:2018-10-11 03:42:38

标签: swift uitextfield ios12 uitextinput

我已经搜索了全部。我想计算文本字段中的单词数。有很多针对字符的解决方案,但没有针对单词的解决方案。 请提供。

谢谢。

3 个答案:

答案 0 :(得分:1)

为此,将UITextFieldDelegate设置为视图控制器并实现方法:-

myTextfield.delegate = self // In Your View Controller

然后

extension myViewController : UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if let _ = textField.text{
            let text = textField.text! as NSString
            let fullText = text.replacingCharacters(in: range, with: string)
            let wordCount = fullText.components(separatedBy: " ").count
            print(wordCount)
        }
        return true
    }

} 

答案 1 :(得分:0)

将textfield值放入字符串中,并用“”空格分隔符计数

let text: String = textfieldvalue

print(text.componentsSeparatedByString(" ").count)

答案 2 :(得分:0)

尝试使用此解决方案查找UITextField中的单词数,而无需将任何委托设置为UITextField。只需从UITextField中取出Xib的已编辑Changed事件出口,然后全部设置即可。检查下面的图像。

enter image description here

然后只需为出口方法添加以下代码即可。

@IBAction func tfEditingChanged(_ sender: UITextField) {
        if let string = sender.text {
            let st1 = string.trimmingCharacters(in: .whitespacesAndNewlines)
            if !st1.isEmpty { // Prints number of words.
                print("count words= \(st1.components(separatedBy: " ").count)")
            }
            else {
                print("count words = 0")
            }
        }
    }

如果您不以编程方式使用Xib,也可以注册editingChanged的{​​{1}}事件,如下所示。

UITextField

希望这会有所帮助。