2016-10-14 2 views
3

으로 전송되었습니다. 스택 오버플로에 대해 많이 검색하지만 솔루션에 따라 프로그램이 언급과 동일하지만 여전히 작동하지 않습니다. 선택에 대한swift 3, 인식되지 않는 셀렉터가 인스턴스 (KeyboardWillShow)

func subscribeToKeyboardNotifications(){ 

    NotificationCenter.default.addObserver(self, selector:Selector(("keyboardWillShow:")), name:NSNotification.Name.UIKeyboardWillShow, object: nil) 
} 


func keyboardWillShow(notification:NSNotification){ 

    view.frame.origin.y -= getKeyboardHeight(notification: notification) 
} 

답변

7

귀하의 주장과 같이, #selector(keyboardWillShow)해야한다 : 당신이 #selector를 사용하지 않는 경우가 NSType의 캐치되지 않는 예외를 줄 것이다 따라서이 응용 프로그램을 종료합니다

func subscribeToKeyboardNotifications() { 
    NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil) 
} 

func keyboardWillShow(notification:NSNotification) { 
    view.frame.origin.y -= getKeyboardHeight(notification: notification) 
} 
+0

나는 u 언급으로 썼지 만 객관적인 "keyboardWillShow"로 선언 된 메서드가 없다는 오류와 Selector 인수에 대한 경고를 보여줍니다. – Majid

+0

답변을 업데이트했습니다. Swift의 새로운 구문은 다음과 같습니다.'#selector (keyboardWillShow) –

+0

Thanks buddy @Michael Patzer – Majid

관련 문제