2017-12-03 23 views
0

버튼을 누르면 다음 XIB 파일이 표시됩니다 (.custom).ViewController를 닫고 함께 작동하지 않는 키보드를 닫습니다.

@IBAction func contactUsBtnPressed(_ sender: Any) { 
      let contactUs = ContactUsXIB() 
      contactUs.modalPresentationStyle = .custom 
      present(contactUs, animated: false, completion: nil) 
     } 

enter image description here 당신은 닫기 버튼이 오른쪽 상단에 알 수 있습니다. 나는이 버튼에 다음 코드를 할당 :

@IBAction func closeBtnPressed(_ sender: Any) { 
     dismiss(animated: false, completion: nil) 
    } 

이 잘 작동합니다.

각 UITextField에 대해 사용자가 화면의 다른 곳을 탭하면 키보드를 닫으려고합니다. 나는 그렇게 신속한 파일에이 코드를 구현 :이 기능을 구현 그러나

import UIKit 

class ContactUsXIB: UIViewController { 

    @IBOutlet weak var nameField: UITextField! 
    @IBOutlet weak var emailField: UITextField! 
    @IBOutlet weak var telephoneField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     setupView() 

    } 

    @IBAction func closeBtnPressed(_ sender: Any) { 
     dismiss(animated: false, completion: nil) 
    } 

    func setupView() { 
     let tap: UIGestureRecognizer = UIGestureRecognizer(target: self, action: #selector(ContactUsXIB.dismissKeyboard)) 
     view.addGestureRecognizer(tap)  
    } 

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

(이 기각 키보드/view.endEditing은 (참) 코드가 다른 응용 프로그램에서 나를 위해 많은 시간을 일했다)의 닫기 버튼이 작동하지 않거나 키보드를 닫지 않습니다. 는 여기에 내가 지금 가지고있는 잘못된 동작입니다 : - 응답이 없습니다

텍스트 필드를 누릅니다 -

  1. XIB가 닫기 버튼을 누릅니다 제시 제시 XIB는

  2. XIB

    을 기각

    텍스트 필드를 탭하고 아무 곳이나 눌러 키보드를 닫으십시오 - 아니요 응답

    t AP 닫기 버튼 - 응답이

    탭 텍스트 필드 - XIB는

모든 아이디어를 어떻게 해결

를 기각?

답변

0
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.view.endEditing(true) 
} 
+0

많은 감사 Suresh! 이것은 완벽하게 작동했습니다. 이 방법은 UIGestureRecognizer 등을 설정하는 것보다 낫습니까? 확실히 적은 코드입니다! – scottc00