2016-09-08 8 views
0

私は、画面上の任意の場所をタップしてキーボードを閉じる機能を追加するための迅速な簡単なソリューションを探しています。私はここで多くの答えを読むが、彼らはすべて私のためにエラーを投げる。私が前に使用している一つがこれです:画面をタップしてキーボードを解除する方法

override func viewDidLoad() { 
    super.viewDidLoad() 


    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target:self, action: #selector(ViewController.dismissKeyboard)) 

    view.addGestureRecognizer(tap) 

は、これは私のプロジェクトの一つで働いていたが、他のもので動作するようには思えません。これを他のプロジェクトに追加しようとすると、エラーが発生します。 'ViewController'タイプには 'dismissKeyboard'というメンバーはありません。

+0

dismissKeyboardメソッドコードも表示できますか? –

答えて

3

これ以上の参照方法を追加する必要があります。 「

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(LoginViewController.dismissKeyboard)) 
    view.addGestureRecognizer(tap) // Allows dismissal of keyboard on tap anywhere on screen besides the keyboard itself 

て交換することを確認してください:私は私のファイルの先頭にこのコードを置く:

func dismissKeyboard() { 
    //Causes the view (or one of its embedded text fields) to resign the first responder status and drop into background 
    view.endEditing(true) 
    } 

そして私は私がのviewDidLoad(内部でこれを使用.dismissKeyboardを参照する必要があるとき)現在のView Controllerで「LoginViewController」を選択します。あなたの例のように、それはあなたが、深さの答えではより多くのを探している場合は、7KV7ことで、これを見るだけで「ViewControllerを」

です: https://stackoverflow.com/a/5711504/6312593

0
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("dismiss:")) 
view.addGestureRecognizer(tap) 

func dismiss(gest : UITapGestureRecognizer){ 
     view.endEditing(true) 
    } 

これが正常に動作している、それを試してみてください。

2

これを試すことができます。非常にシンプルなソリューションで、頻繁に使用してキーボードを閉じます。

この機能を追加するだけです。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) 
{ 
    self.view.endEditing(true) 
} 
関連する問題