code

UIWindow endDisablingInterfaceAutorotationAnimated 오류는 키보드가 iOS9에서만 collectionView에서 대화식으로 해제 될 때 콘솔에 나타납니다.

codestyles 2020. 12. 2. 21:22
반응형

UIWindow endDisablingInterfaceAutorotationAnimated 오류는 키보드가 iOS9에서만 collectionView에서 대화식으로 해제 될 때 콘솔에 나타납니다.


iOS9에서만이 이상한 오류가 발생합니다.

[UIWindow endDisablingInterfaceAutorotationAnimated:] called on UITextEffectsWindow: ...without matching
-beginDisablingInterfaceAutorotation. Ignoring.

언제든지 collectionView 내에서 아래로 드래그하여 대화식으로 키보드를 닫습니다. 탭 제스처로 키보드를 닫거나 Enter 키를 눌러도 오류가 발생하지 않습니다. 매우 답답합니다. 키보드 알림이 표시되지 않는 경우에도이 대화 형 키보드 닫기에서이 오류가 발생합니다. 다른 사람이이 오류를 발견하고 해결책을 찾았는지 궁금합니다. 키보드에 탑재 된 textView로 구성된 inputAccessoryView가 있습니다.


iOS9에서 동일한 문제가 발생했지만 tableView가 있습니다. 나는 이것을 함께 구현 self.tableView.keyboardDismissMode = .Interactive했고 그것은 나를 위해 일했습니다.

// Dismiss keyboard when scrolling
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    textView.resignFirstResponder()
}

확인할 사항

여러 다른 SO 사용자가 다양한 조건에서 비슷한 경험을 한 것으로 보입니다. 스레드를 확인하십시오 . 이 문제를 일으키는 많은 일이 발생할 수 있으므로 제공된 스레드를 검토하여 일치하는 사용 사례를 찾을 수 있는지 확인할 수 있습니다. 키보드를 닫는 방법은 명확하지 않지만 메서드 또는 제스처 인식기에서 다음과 같은 것을 호출 할 수 있습니다 (특정 개체에서 직접 해제하는 것이 아님).

UIApplication.sharedApplication().sendAction("resignFirstResponder", to: nil, from: nil, forEvent: nil)

제공된 스레드에서 볼 때 대부분의 경우 문제의 성격은 프레젠테이션 또는보기 해제 중 중복 호출이었습니다. 또한 스토리 보드 segue가 연결된 경우 (또는 경우에 따라 제거되었지만 xml이 여전히 스토리 보드 코드보기에 있음) 및 동일한 애니메이션에 대한 코드 기반 segue (performSegueWithIdentifier ...)가있는 문제를 보았습니다. 두 번의 표시 / 거부 호출 발생).

로그를보고 오류 직전에 어떤 호출이 기록되고 있는지 확인한 다음 로그보기에서 찾기를 수행하여 중복 호출이 있는지 확인합니다. 다시 말하지만 스토리 보드의 동작 / 애니메이션 / 레이아웃과 코드에서 이루어진 호출에 중복이있을 수 있습니다.

최신 정보

OP의 의견은 일부 경우 특히 프레젠테이션 / 해제 중 호출과 관련된 경우에 개발자 함수 작업을 성공적으로 수행하는 유일한 방법은 dispatch_async 호출로 래핑하는 것임을 상기 시켰습니다. 개발자 코드가 동일한 프레임에 도입되면 제대로 작동하지 않는 것으로 보이는 몇 가지 중요한 시스템 호출이 있습니다.

구체적인 예는 willMoveToWindow. 이 경우 뷰에 대한 weakSelf 참조가 있고 코드를 호출하기 전에 newWindow에서 nil 값 (뷰가 해제됨을 나타냄)을 검토합니다.

따라서이 예제에서 디스패치 호출을 제거하면 개발자 코드로 인해 전체 앱이 중단됩니다. 나는 시스템 전환 호출 (창으로 /에서 전환과 관련된)이 그 당시 개발자가 요청한 것과 충돌 할 수 있다고 생각합니다.

 dispatch_async(dispatch_get_main_queue(), { () -> Void in

     //the saved flag is true only when user hits the done button
     if !(weakSelf!.saved) {
         weakSelf?.completeNotes(nil)
     }

 })

이 문제가 발생하여 내 견해가 엉망입니다. 이것이 내가 그것을 해결하는 방법입니다.

나는 viewController에 발표되고 있었다 textFieldShouldBeginEditing. 에서 viewController, A를 textField로 설정 becomeFirstResponder에서 viewDidLoad.

나를 위해이 솔루션은 이동하는 것입니다 becomeFirstResponder에를 viewDidAppear.

참고 URL : https://stackoverflow.com/questions/33071271/uiwindow-enddisablinginterfaceautorotationanimated-error-appears-in-console-when

반응형