แป้นพิมพ์ iOS 8 ยกเลิกความล่าช้าหลังจากตัวควบคุมมุมมองกิริยาถูกปิด

ใน iOS 8+ ฉันสังเกตเห็นว่าหากคุณมีช่องข้อความที่ปัจจุบันเป็น firstResponder ในตัวควบคุมมุมมองที่แสดงอยู่ เมื่อตัวควบคุมมุมมองถูกปิด แป้นพิมพ์จะค้างประมาณ 1 วินาทีก่อนที่จะถูกปิด

สิ่งนี้เกิดขึ้นกับทั้ง iOS 8.0 และ 8.1 และ ไม่ใช่ 7.1

มีความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนี้?


person micap    schedule 04.12.2014    source แหล่งที่มา


คำตอบ (2)


จากข้อมูลนี้ ดูเหมือนว่าใน iOS 8 มุมมองจะไม่ออกจากสถานะการตอบกลับครั้งแรกจนกว่าจะอยู่นอกหน้าจอจริงๆ

http://prod.lists.apple.com/archives/cocoa-dev/2014/Sep/msg00391.html

วิธีแก้ปัญหาของเราคือโทร [self.view endEditing:YES] ใน -viewWillDisappear

person micap    schedule 22.12.2014
comment
เมื่อฉันลองสิ่งนี้ คีย์บอร์ดจะเริ่มปิด แต่จากนั้นก็กระโดดกลับขึ้นมาก่อนที่ตัวควบคุมมุมมองจะปิดด้วยเหตุผลบางประการ... - person ryanthon; 26.12.2014
comment
ยังคงเกิดขึ้นใน iOS 9 - view.endEditing(true) - person DogCoffee; 04.12.2015

สำหรับสวิฟท์ 3/4

override func viewWillDisappear(_ animated: Bool) {
    self.view.endEditing(true)
}

นอกจากนี้ หากยังไม่ลาออก ให้ลองโทร resignFirstResponder ในช่องข้อความที่คุณพยายามจะสิ้นสุดการพิมพ์

override func viewWillDisappear(_ animated: Bool) {
    textField.resignFirstResponder()
}
person ricks    schedule 30.03.2018
comment
อย่าลืมโทร super.viewWillDisappear(animated) - person Tim Vermeulen; 03.05.2018
comment
@TimVermeulen ใช่! ความคิดเห็นที่ดี หาก Ricks เพิ่มสิ่งนี้ลงในคำตอบของเขา มันจะได้รับการโหวตจากฉัน - person mskolnick; 28.02.2020