Computer >> Máy Tính >  >> Lập trình >> IOS

Làm cách nào để đếm số ký tự trong hộp Văn bản khi nhập trong iOS?

Là một nhà phát triển iOS, người ta nên biết cách thao tác với trường văn bản và hoạt động của nó, Apple đã cung cấp giao thức UITextFieldDelegate.

Để đọc thêm về nó, hãy https://developer.apple.com/documentation/uikit/uitextfielddelegate

Bạn có thể đã thấy ứng dụng có thể có liên quan đến các biểu mẫu và bạn thấy số lượng ký tự bạn đang nhập khi bạn nhập đặc biệt vào các biểu mẫu mà các ký tự bị hạn chế ở một số lượng nhất định.

Trong bài đăng này, chúng ta sẽ cùng xem cách hiển thị số ký tự khi bạn nhập vào TextField.

Bước 1 - Mở Xcode → Dự án mới → Ứng dụng một lần xem → Đặt tên cho nó là “TextFieldCount”

Bước 2 - Mở Main.storyboard và thêm TextField và nhãn như hình minh họa, tạo @IBOutlet cho nhãn và trường văn bản và đặt tên chúng lần lượt là lblCount, txtInputBox.

Làm cách nào để đếm số ký tự trong hộp Văn bản khi nhập trong iOS?

Bước 3 - Trong ViewController.swift, xác nhận giao thức UITextFieldDelegate và ủy quyền với textInputBox cho chính mình.

class ViewController: UIViewController, UITextFieldDelegate {
txtInputBox.delegate = self

Bước 4 - Triển khai shouldChangeCharactersIn của ủy quyền và viết đoạn mã sau vào bên trong nó.

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
}

Bước 5 - Chạy ứng dụng, Đối với mã cuối cùng,

Ví dụ

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
   }
}

Đầu ra

Làm cách nào để đếm số ký tự trong hộp Văn bản khi nhập trong iOS?