-
[iOS]텍스트필드가 등장할 때 타임아웃 뜨는 버그 해결법공부/iOS 2024. 1. 17. 17:35
짜증나는 버그
iOS17 버전으로 개발을 위해 Xcode를 업데이트 한 이후로 갑자기 위의 버그가 등장했다.
간혹가다 락이 걸려 앱 자체가 동작하지 않을 때도 있어 개발에 어려움이 있었다...
[UIKeyboardTaskQueue lockWhenReadyForMainThread] timeout waiting for task on queue
Error for queryMetaDataSync: 2
[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:]
perform input operation requires a valid sessionID도대체 정체가 뭘까?
찾아보는데 나 뿐안 아니라 많은 사람들이 이 버그에 고통받고 있었다 ㄷㄷ
https://forums.developer.apple.com/forums/thread/715594
https://forums.developer.apple.com/forums/thread/736569
모두가 겪는 공통점은 "키보드가 등장할 때" 앱 동작에 문제가 발생한다는 점이었다. 포럼의 글을 확인해보다 알게된 사실은 "수정 제안"이 등장할 때 문제가 있다는 것을 확인했다. 그렇게 "수정 제안" 부분을 유심히 보니까 재밌는 사실을 발견했다.
위의 사진을 자세히 보면 입력에 대한 제한에 문제가 생겨 아무것도 등장하지 않는다. 키보드의 "제안"이 시간 초과로 Lock이 걸렸다 강제로 종료되자 고장났던 것이다. 그렇다면 이 "제안" 자체를 숨기는 방법으로 해결할 수 있지 않을까???
솔루션
야호!!
수정 제안을 제거하면 더이상 에러가 발생하지 않는다!!
private lazy var titleTextField: BlueShadowTextField = { let textField = BlueShadowTextField(placeholder: "제목을 입력해주세요") textField.autocorrectionType = .no textField.spellCheckingType = .no return textField }()
깔끔하게 수정 제안을 왁싱하자 더이상 textField에서 발생하는 lock이 등장하지 않게 되었다. 여러개의 텍스트필드가 존재할 때 이 문제가 특히 자주 발생했는데 그 과정에서 세션이 꼬이게 된게 아닌가 싶다. 마찬가지로 키보드가 등장하는 UITextView에서도 동일하게 해결할 수 있으니 나처럼 고생했을 누군가에게 도움이 되었으면 좋겠다.
그리고.. 당분간은 수정 제안을 안쓰는걸로 해야겠다.😂
'공부 > iOS' 카테고리의 다른 글
[SwiftUI] 1. TCA를 왜 도입하는걸까? (MVVM의 운명은?) (0) 2024.02.27 [iOS] status code가 200일 때 빈 응답이 들어오는 경우 (0) 2024.02.17 키체인을 활용해 jwt Token 안전하게 저장하기 (1) 2024.01.16 Xcode15에서 XCTest를 할 때 Testing... 에서 멈추는 현상 (0) 2024.01.02 UIKit에서 Delegate Pattern를 쓰는 이유 (0) 2023.12.21