2017-12-03 24 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のそれぞれについて、ユーザーが画面上の他の場所をタップすると、キーボードが消えたがります。 私がそうすることを迅速ファイルにこのコードを実装:(これはキーボード/ view.endEditingを却下(真の)コードは他のアプリで私のために多くの時間を働いている)

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

を、私はこの機能を実装ただし際に、閉じるボタンが機能せず、キーボードを閉じることもできません。 は、ここで私は今持っている不正な動作である: - 応答がありません

テキストフィールドをタップする -

  1. XIBは、閉じるボタンをタップして提示される提示されXIBが

  2. XIB

    を却下され

    テキストフィールドをタップし、他の場所をタップしてキーボードを閉じる - レスポンス

    t AP閉じるボタン - 無応答

    テキストフィールドをタップする - XIBは

に解決するためにどのように任意のアイデアを却下していますか?

答えて

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

多くのお礼ありがとうございます!これは完全に機能しました。 この方法はUIGestureRecognizerなどを設定するよりも優れていますか?それは確かに少ないコードです! – scottc00

関連する問題