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

จะ จำกัด UITextField ให้รับเฉพาะตัวเลขใน Swift ได้อย่างไร


ในแอป iOS บางครั้งเราต้องจำกัดช่องข้อความให้รับเฉพาะตัวเลขเป็นอินพุต ซึ่งทำได้หลายวิธี มาดูกันบางส่วน

วิธีที่ 1:การเปลี่ยนประเภทฟิลด์ข้อความจากกระดานเรื่องราว

  • เลือกช่องข้อความที่คุณต้องการจำกัดการป้อนตัวเลข
  • ไปที่ตัวตรวจสอบแอตทริบิวต์
  • เลือกประเภทแป้นพิมพ์และเลือกแป้นตัวเลขจากที่นั่น

วิธีที่ 2:การจำกัดอินพุตโดยทางโปรแกรมเป็นตัวเลข

  • เลือกช่องข้อความ
  • สร้างทางออกในตัวควบคุมมุมมอง
  • กำหนดตัวควบคุมการดูให้เป็น UITextFieldDelegate
  • ตั้งค่าผู้รับมอบสิทธิ์ของฟิลด์ข้อความ
  • เพิ่มฟังก์ชันต่อไปนี้
func textField (_ textField:UITextField, shouldChangeCharactersIn range:NSRange, replacementString string:String) -> Bool { if let x =string.rangeOfCharacter (จาก:NSCharacterSet.decimalDigits) { return true } else { return false }}

คลาสตัวอย่างทั้งหมดของเราดูเหมือน

<ก่อนหน้า>นำเข้า UIKitclass ViewController:UIViewController, UITextFieldDelegate { @IBOutlet อ่อนแอ var tf:UITextField! แทนที่ func viewDidLoad () { tf.delegate =self super.viewDidLoad () } func textField (_ textField:UITextField, shouldChangeCharactersIn range:NSRange, replacementString string:String) -> Bool { if let x =string.rangeOfCharacter (จาก:NSCharacterSet .decimalDigits) { return true } else { return false } }}

ซึ่งจะสร้างช่องข้อความที่รับเฉพาะตัวเลขเป็นอินพุตเท่านั้น ไม่สามารถใช้อักขระอื่นได้