2016-09-08 2 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

위 참조를 추가해야합니다.

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

그리고 나는 .dismissKeyboard를 참조해야 할 때마다 내가있는 viewDidLoad() 안에 이것을 사용 :

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 

그리고 '교체해야합니다 나는 내 파일의 시작 부분에이 코드를 넣어 LoginViewController '를 현재 View Controller와 비교합니다. 귀하의 예에 따라, 즉 그냥 '의 ViewController'

당신이 깊이 대답에 더 찾고 있다면, 7KV7하여이를 참조 :이 제대로 작동 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) 
} 
관련 문제