Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> iOS

วิธีซ่อนคีย์บอร์ดบนหน้าจอในแอป iOS

เพื่อซ่อนคีย์บอร์ดบนหน้าจอ ใช้ฟังก์ชันภายใน iOS SDK คีย์บอร์ดจะแสดงเมื่อพิมพ์ใน Text Field หรือ Text View ต้องใช้ฟังก์ชันตามประเภทของ Text Field

วิธีพื้นฐาน: ซ่อนคีย์บอร์ดของ Text Field เฉพาะตัว

ถ้า Text Field ปัจจุบันคือ tfOne สามารถซ่อนได้ด้วย:

tfOne.resignFirstResponder()

เรียกใช้ใน Action ของปุ่มหรือ Gesture Recognizer ก็ได้

วิธีขยาย: ซ่อนคีย์บอร์ดเมื่อแตะนอกพื้นที่ Text Field (หลาย Text Fields)

สร้างฟังก์ชันสำหรับจัดการหลาย Text Fields:

func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}

@objc func dismissKeyboard() {
view.endEditing(true)
}

ฟังก์ชันนี้จะซ่อนคีย์บอร์ดเมื่อแตะที่พื้นที่ว่างของ View

วิธีที่ดีที่สุด: ใช้ UIViewController Extension

เพื่อให้ใช้งานได้ทุก View Controller ให้วางไว้ใน Extension:

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)
}
}

เพียงเรียก hideKeyboardWhenTappedAround() ใน viewDidLoad() คีย์บอร์ดจะซ่อนอัตโนมัติเมื่อแตะนอก Text Field/View