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