본문 바로가기

iOS/UIKit

[iOS] Swift 키보드가 올라왔을 때, 아무키를 눌러도 키보드 호출함수 두번 발생? Xcode 버그?

반응형

안녕하세요. 오늘은 키보드 관련 오류를 겪어서 공유하고자 글 적습니다.

오류 상황

  1. UITextField를 만들어줌
  2. UITextField를 터치시 키보드가 올라오는데, 키보드가 올라왔을 때 실행시켜주고 싶은 동작이 있음
  3. NotificationCenter에 키보드가 올라온 뒤, 실행되는 메서드를 addObserver 해줌
  4. 키보드가 정상적으로 올라호고 메서드가 잘 작동 됨
  5. 하지만 키보드에 있는 아무키를 눌렀는데 키보드가 올라올 때, 작동되는 메서드가 또 작동이 되는 현상이 발생 (딱 1번)

정말 뭐가 문제인지 모르겠어서 구글링을 해봤는데도 답을 찾을 수 없었습니다..

keyboardwillshownotification when i press key 같은 키워드로 찾아보았지만 원하는 답이 없었습니다.

지푸라기 잡는 심정으로 실기기로 테스트를 해보았는데, 정상작동을 하는 것을 보고 띠용했습니다..

삽질을 1시간은 넘게 한 것 같은데... 열받았지만, 코드에 문제가 있던것이 아니여서 감사하네요..!

겪었던 상황을 사진으로 공유드리겠습니다.

  1. UITextField 생성
    스크린샷 2022-11-15 오후 11 15 06
  2. 키보드가 올라올 때 작동되는 함수 작성
    스크린샷 2022-11-15 오후 11 20 37
  3. 에러상황
    Nov-15-2022 23-21-49

    이상하게 키 입력시 딱 1번만 키보드가 올라오는 함수가 작성됩니다.
    물론 return 키를 눌러도 상황은 같아요.
  4. TextField delegate 설정으로 키보드를 내려보고자 함
    어떤 상황인지 정확하게 모르겠고.. return 키를 눌렀을 때도 키보드 올라오는 함수가 작동되기 때문에
    textFieldShouldReturn 메서드를 이용해 해결이 되지 않을까..? return키를 눌러서 키보드를 내리면 어떨까..?
    스크린샷 2022-11-15 오후 11 26 38
  5. 이것도 에러
    Nov-15-2022 23-26-02

    마찬가지였네요.
  6. 실기기 테스트
    Nov-15-2022 23-28-44

실기기에 테스트해보니 정상작동 하네요!

무슨 버그인지는 정확하게 모르겠지만 Xcode 버그인 것 같아요.
제 Xcode 버전은 14.0이고 iPhoneSE(3), iPhone14, iPhone14Plus, iPhone14 pro 시뮬레이터에서 이와같은 버그가 발생했습니다.
몇몇 시뮬레이터에만 테스트를 해봤는데, 아마 전부 동일한 버그가 있을 것으로 예상됩니다..

무슨 버그인지 아시는분이 계시면 댓글로 남겨주시면 감사하겠습니다!

반응형