iOS 개발자는 텍스트 필드를 조작하는 방법과 작동 방법을 알아야 하므로 Apple은 이미 UITextFieldDelegate 프로토콜을 제공했습니다.
자세한 내용을 보려면 https://developer.apple.com/documentation/uikit/uitextfielddelegate
양식이 관련된 may 응용 프로그램을 보았을 수 있으며 문자가 특정 수로 제한된 양식에 특별히 입력할 때 입력하는 문자 수가 표시됩니다.
이 게시물에서는 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 } }
출력