Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะนับจำนวนตัวอักษรในกล่องข้อความขณะพิมพ์ใน iOS ได้อย่างไร?


ในฐานะนักพัฒนา iOS ควรทราบวิธีจัดการกับช่องข้อความและการทำงานของช่องนั้น Apple ได้จัดเตรียมโปรโตคอล UITextFieldDelegate แล้ว

หากต้องการอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ https://developer.apple.com/documentation/uikit/uitextfielddelegate

คุณอาจเคยเห็นแอปพลิเคชันที่เกี่ยวข้องกับแบบฟอร์ม และคุณเห็นจำนวนอักขระที่คุณกำลังป้อนเมื่อคุณพิมพ์พิเศษในแบบฟอร์มที่อักขระถูกจำกัดให้นับเฉพาะ

ในโพสต์นี้ เราจะเห็นวิธีการแสดงจำนวนอักขระเช่นเดียวกันเมื่อคุณพิมพ์ใน TextField

ขั้นตอนที่ 1 − เปิด Xcode → โครงการใหม่ → แอปพลิเคชั่นมุมมองเดียว → ตั้งชื่อมันว่า "TextFieldCount"

ขั้นตอนที่ 2 − เปิด Main.storyboard และเพิ่ม TextField และ label ตามที่แสดง สร้าง @IBOutlet สำหรับป้ายกำกับและช่องข้อความ แล้วตั้งชื่อเป็น lblCount, txtInputBox ตามลำดับ

จะนับจำนวนตัวอักษรในกล่องข้อความขณะพิมพ์ใน iOS ได้อย่างไร?

ขั้นตอนที่ 3 − ใน ViewController.swift ให้ยืนยันโปรโตคอล UITextFieldDelegate และผู้รับมอบสิทธิ์ด้วย textInputBox ให้กับตัวเอง

คลาส 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 ให้ lngthToAdd =string.count ให้ lengthCount =strLength + lngthToAdd self.lblCount.text ="\(lengthCount)" } คืนค่าจริง}

ขั้นตอนที่ 5 − เรียกใช้แอปพลิเคชัน สำหรับรหัสสุดท้าย

ตัวอย่าง

<ก่อนหน้า>นำเข้า UIKitclass ViewController:UIViewController, UITextFieldDelegate { @IBOutlet var txtInputBox:UITextField! @IBOutlet var lblCount:UILabel! แทนที่ func viewDidLoad () { super.viewDidLoad () txtInputBox.delegate =self } func textField (_ textField:UITextField ควรเปลี่ยนอักขระในช่วง:NSRange, สตริงการแทนที่สตริง:สตริง) -> Bool { if (textField ==txtInputBox) { ให้ strLength =textField.text?.นับ ?? 0 ให้ lngthToAdd =string.count ให้ lengthCount =strLength + lngthToAdd self.lblCount.text ="\(lengthCount)" } คืนค่าจริง }}

ผลลัพธ์

จะนับจำนวนตัวอักษรในกล่องข้อความขณะพิมพ์ใน iOS ได้อย่างไร?