如何在 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
   }
}

输出

更新于: 2019-07-30

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告