键入时如何计算直播的UITextField字数(Swift)?

问题描述 投票:-1回答:3

我搜索了所有。我想计算文本字段中的单词数。字符有很多解决方案,但不是单词。请提供。

提前致谢。

swift uitextfield ios12 uitextinput
3个回答
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
    }

} 

0
投票

将textfield值放入字符串并使用“”空格分隔符计算它们

let text: String = textfieldvalue

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

0
投票

尝试这个解决方案来查找UITextField中的单词数量,无需将任何委托设置为UITextField。只需从UITextField和所有设置中编辑Xib的编辑Changed事件插座。检查下图。

enter image description here

只需为outlet方法添加以下代码即可。

@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,也可以在下面注册editingChangedUITextField事件。

yourTextField.addTarget(self, action: #selector(tfEditingChanged(_:)), for: .editingChanged)

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.