স্ক্রিনে কীবোর্ড হাইড করতে iOS SDK-তে প্রিডিফাইন্ড কিছু ইন্টারনাল ফাংশন ব্যবহার করতে হয়। কীবোর্ড স্ক্রিনে দেখায় যখন আমরা টেক্সট ফিল্ড বা টেক্সট ভিউ-তে টাইপ করি। টেক্সট ফিল্ড অনুযায়ী ইন্টারনাল ফাংশন ব্যবহার করতে হয়।
উদাহরণস্বরূপ, যদি করেন্ট টেক্সট ফিল্ড tfOne হয়, তবে নিচের কোড দিয়ে কীবোর্ড হাইড করা যায়:
tfOne.resignFirstResponder()
এই কোড যেকোনো সময় কল করলে কীবোর্ড হাইড হয়ে যাবে, আমরা এটি বাটনের অ্যাকশন বা জেসচার রিকগ্নাইজারের জন্য কল করতে পারি।
এই মেথড লিমিটেড টেক্সট ফিল্ডের জন্য ভালো, কিন্তু একাধিক টেক্সট ফিল্ড বা টেক্সট ভিউ থাকলে আরও উন্নত করতে হয়।
আমরা একটি ফাংশন তৈরি করতে পারি।
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
এই ফাংশন আমাদের ক্লাসে ব্যবহার করলে কোনো টেক্সট ফিল্ড/ভিউ বাদে স্ক্রিনে ট্যাপ করলে কীবোর্ড হাইড হয়ে যাবে।
কিন্তু এখানে একটি ভিউ প্রয়োজন যেটির ওপর জেসচার অ্যাড হবে, তাই এই ফাংশনকে UIViewExtension-এ এম্বেড করতে হবে।
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
এখন viewDidLoad()-এ এই ফাংশন কল করলে, টেক্সট ভিউ/ফিল্ড বাদে ভিউ-তে যেকোনো জায়গায় ট্যাপ করলে কীবোর্ড হাইড হয়ে যাবে।