iOS의 키보드 확장은 UIInputViewController
클래스의 하위 클래스이며 기본 문서와 상호 작용하는 속성이 textDocumentProxy
입니다. textDocumentProxy
개체는 자동 대문자 사용 유형과 같은 문서의 중요한 특성을 나타냅니다. 문제는 기본 문서가 변경 될 때 키보드 확장이 어떻게 알 수 있습니까?키보드 프록시는 문서 프록시가 변경되었음을 어떻게 알 수 있습니까?
예를 들어 메시지 앱에서 새 메시지를 작성하려면 "수신자"필드가 메시지 본문 입력 상자와 다른 입력 특성을 사용합니다. 그러나 한 필드에서 다른 필드로 포커스를 전환 할 때 키보드가 사라지지 않기 때문에 텍스트 문서 프록시 객체가 즉시 변경됩니다. 키보드 확장이 그러한 변경을 알 수 있습니까?
KVO를 통해 textDocumentProxy
및 [[self textDocumentProxy] autocapitalizationType]
속성을 모두 시청 해봤지만 작동하지 않습니다. 타이머를 사용하여 autocapitalizationType
속성을 확인하면 변경 내용이 표시되지만 분명히 폴링 솔루션을 피하고 싶습니다.
감사합니다. 나는 완전히'UITextInputDelegate'를 놓쳤다. – zoul
이것은 iOS 10에서는 작동하지 않는 것처럼 보입니다. textDocumentProxy 메모리 주소가 변경되지 않는 것처럼 보입니다. 그리고 그것들은 뒤에서 입력 필드를 스와핑하고 있습니다. 여전히 작동하는 솔루션을 찾았습니까? –