रिटर्न/डन बटन से टेक्स्ट फील्ड्स के बीच नेविगेशन
सभी टेक्स्ट फील्ड्स को एक-एक करके डन या रिटर्न बटन पर टैप करके पार करने के लिए हमें एक लॉजिक बनाना होगा। आइए एक प्रोजेक्ट की मदद से इसे समझें।
प्रोजेक्ट सेटअप
- एक प्रोजेक्ट बनाएं और व्यू कंट्रोलर स्टोरीबोर्ड पर चार टेक्स्ट फील्ड्स ड्रैग करें।
- उन्हें एक-एक करके चुनें और एट्रिब्यूट इंस्पेक्टर से उनके टैग 1,2,3,4 क्रमशः सेट करें।
- एट्रिब्यूट इंस्पेक्टर से ही उनके रिटर्न की को "Done" सेट करें।
- व्यू कंट्रोलर क्लास में चारों टेक्स्ट फील्ड्स के आउटलेट बनाएं, उन्हें संबंधित आउटलेट से कनेक्ट करें।
@IBOutlet weak var tf1: UITextField!
@IBOutlet weak var tf2: UITextField!
@IBOutlet weak var tf3: UITextField!
@IBOutlet weak var tf4: UITextField!
- ViewController क्लास को UITextFieldDelegate से एक्सटेंड करें, और textFieldShouldReturn मेथड लिखें
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
}
}
- ViewController क्लास के viewDidLoad() मेथड में, उनके डेलीगेट को self सेट करें, एक-एक करके।
override func viewDidLoad() {
super.viewDidLoad()
self.tf1.delegate = self
self.tf2.delegate = self
self.tf3.delegate = self
self.tf4.delegate = self
}
- अब ऊपर लिखे मेथड में, निम्नलिखित कोड लाइनें जोड़ें
let nextTag = textField.tag + 1
let nextTF = textField.superview?.viewWithTag(nextTag) as UIResponder?
if nextTF != nil {
nextTF?.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false
पूरा ViewController क्लास
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tf1: UITextField!
@IBOutlet weak var tf2: UITextField!
@IBOutlet weak var tf3: UITextField!
@IBOutlet weak var tf4: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.tf1.delegate = self
self.tf2.delegate = self
self.tf3.delegate = self
self.tf4.delegate = self
}
}
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let nextTag = textField.tag + 1
let nextTF = textField.superview?.viewWithTag(nextTag) as UIResponder?
if nextTF != nil {
nextTF?.becomeFirstResponder()
} else {
textField.resignFirstResponder()
}
return false
}
}
यह ऐप Xcode और सिम्युलेटर पर इस तरह दिखता है:

