ในแอป 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 } }}ซึ่งจะสร้างช่องข้อความที่รับเฉพาะตัวเลขเป็นอินพุตเท่านั้น ไม่สามารถใช้อักขระอื่นได้