투케이2K

152. (ios/swift) keyboardWillShowNotification 사용해 가상 키보드 호출 상태 및 높이 사이즈 확인 실시 본문

IOS

152. (ios/swift) keyboardWillShowNotification 사용해 가상 키보드 호출 상태 및 높이 사이즈 확인 실시

투케이2K 2022. 6. 14. 16:55

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [뷰 화면 표시]
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> viewDidAppear() :: 뷰 화면 표시]")
        print("====================================")
        print("")
  
        // -----------------------------------------
        // [가상 키보드 높이 구하기 채널 등록]
        NotificationCenter.default.addObserver(
            self,
            selector: #selector(self.keyboardState(notification:)),
            name: UIResponder.keyboardWillShowNotification,
            object: nil
        )
        // -----------------------------------------
    }





    // MARK: - [뷰 종료 상태]
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> viewDidDisappear() :: 뷰 종료 상태]")
        print("====================================")
        print("")
        
        // -----------------------------------------
        // [가상 키보드 높이 구하기 채널 해제]
        NotificationCenter.default.removeObserver(
            self,
            name: UIResponder.keyboardWillShowNotification,
            object: nil
        )
        // -----------------------------------------
    }





    // [가상 키보드 호출 및 높이 확인 메소드]
    @objc func keyboardState(notification:Notification) -> Void {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> keyboardState() :: 가상 키보드 호출 이벤트 감지]")
        print("====================================")
        print("")
        
        // [가상 키보드 높이 사이즈 구하기 실시]
        if let keyboardFrame: NSValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
            
            // [높이 확인]
            let keyboardHeight = keyboardFrame.cgRectValue.height
            
            print("")
            print("====================================")
            print("[\(self.ACTIVITY_NAME) >> keyboardState() :: 가상 키보드 높이 확인]")
            print("keyboardHeight :: \(keyboardHeight)")
            print("====================================")
            print("")
        }
    }
 

[결과 출력]


반응형
Comments