टेक्स्ट फील्ड को न्यूमेरिक इनपुट तक सीमित करना
iOS ऐप्स में कभी-कभी हमें अपने टेक्स्ट फील्ड को केवल नंबर इनपुट के रूप में स्वीकार करने के लिए प्रतिबंधित करने की आवश्यकता होती है, यह कई तरीकों से किया जा सकता है, आइए उनमें से कुछ को देखें।
विधि 1: स्टोरीबोर्ड से टेक्स्ट फील्ड टाइप बदलना
- उस टेक्स्ट फील्ड को चुनें जिसे आप न्यूमेरिक इनपुट तक सीमित करना चाहते हैं।
- इसके एट्रिब्यूट इंस्पेक्टर पर जाएं।
- कीबोर्ड टाइप चुनें और वहां से Number Pad चुनें।
विधि 2: प्रोग्रामेटिकली इनपुट को नंबर तक सीमित करना
- टेक्स्ट फील्ड चुनें
- व्यू कंट्रोलर में इसका आउटलेट बनाएं
- व्यू कंट्रोलर को UITextFieldDelegate के अनुरूप बनाएं
- टेक्स्ट फील्ड के डेलीगेट को सेट करें
- निम्नलिखित फंक्शन जोड़ें
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let _ = string.rangeOfCharacter(from: CharacterSet.decimalDigits) {
return true
} else {
return false
}
}
हमारा पूरा उदाहरण क्लास ऐसा दिखता है:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var tf: UITextField!
override func viewDidLoad() {
tf.delegate = self
super.viewDidLoad()
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let _ = string.rangeOfCharacter(from: CharacterSet.decimalDigits) {
return true
} else {
return false
}
}
}
यह एक टेक्स्ट फील्ड बनाएगा जो केवल डिजिट को इनपुट के रूप में ले सकता है और कोई अन्य कैरेक्टर नहीं।