如何在 iOS 中输入文本时计算文本框中的字符数?
作为一名 iOS 开发人员,应该知道如何操作文本字段及其操作,Apple 已经提供了 UITextFieldDelegate 协议。
要了解更多信息,请访问 https://developer.apple.com/documentation/uikit/uitextfielddelegate
您可能在许多包含表单的应用程序中看到过这种情况,当您输入时,您会看到输入的字符数量,尤其是在字符数量受限的表单中。
在这篇文章中,我们将看到如何在您在 TextField 中输入时显示字符计数。
步骤 1 - 打开 Xcode → 新建项目 → 单视图应用程序 → 我们将其命名为“TextFieldCount”
步骤 2 - 打开 Main.storyboard 并添加 TextField 和标签,如所示,为标签和文本字段创建 @IBOutlet 并分别将其命名为 lblCount 和 txtInputBox。
步骤 3 - 在 ViewController.swift 中确认 UITextFieldDelegate 协议并使用 textInputBox 将委托设置为 self。
class ViewController: UIViewController, UITextFieldDelegate { txtInputBox.delegate = self
步骤 4 - 实现委托 shouldChangeCharactersIn 并将其中的代码写如下。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if(textField == txtInputBox){ let strLength = textField.text?.count ?? 0 let lngthToAdd = string.count let lengthCount = strLength + lngthToAdd self.lblCount.text = "\(lengthCount)" } return true }
步骤 5 - 运行应用程序,获取最终代码,
示例
import UIKit class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet var txtInputBox: UITextField! @IBOutlet var lblCount: UILabel! override func viewDidLoad() { super.viewDidLoad() txtInputBox.delegate = self } func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if(textField == txtInputBox){ let strLength = textField.text?.count ?? 0 let lngthToAdd = string.count let lengthCount = strLength + lngthToAdd self.lblCount.text = "\(lengthCount)" } return true } }
输出
广告