Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iOS에서 입력하는 동안 텍스트 상자의 문자 수를 계산하는 방법은 무엇입니까?

<시간/>

iOS 개발자는 텍스트 필드를 조작하는 방법과 작동 방법을 알아야 하므로 Apple은 이미 UITextFieldDelegate 프로토콜을 제공했습니다.

자세한 내용을 보려면 https://developer.apple.com/documentation/uikit/uitextfielddelegate

양식이 관련된 may 응용 프로그램을 보았을 수 있으며 문자가 특정 수로 제한된 양식에 특별히 입력할 때 입력하는 문자 수가 표시됩니다.

이 게시물에서는 TextField에 입력할 때 문자 수를 표시하는 동일한 방법을 볼 것입니다.

1단계 − Xcode 열기 → 새 프로젝트 → 단일 보기 애플리케이션 → 이름을 "TextFieldCount"로 지정합니다.

2단계 − Main.storyboard를 열고 그림과 같이 TextField와 레이블을 추가하고 레이블과 텍스트 필드에 @IBOutlet을 만들고 각각 lblCount, txtInputBox로 이름을 지정합니다.

iOS에서 입력하는 동안 텍스트 상자의 문자 수를 계산하는 방법은 무엇입니까?

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

출력

iOS에서 입력하는 동안 텍스트 상자의 문자 수를 계산하는 방법은 무엇입니까?