2016-12-03 7 views
0

우리는 키보드 확장 작업 중이며 Microsoft Office Word에서 이상한 버그가 발생했습니다 (아직 다른 곳에서는 보지 못했습니다 ...) super.textDocumentProxy.documentContextAfterInput 단순히 현재 커서 위치와 동기화되지 않습니다.키보드 확장 documentContextAfterInput out of sync

어떻게 그럴 수 있는지 모르겠지만 그 결과는 꽤 일치합니다.

  1. 우리는 쓰기 : '톰'
  2. 선택 제안 '내일'
  3. 선택 다음 제안 커서가에 있어야 3 단계의 시작에서 '그'

'내일을 |' ('|'로 표시된 커서), documentContextAfterInput은 '\ 0'이됩니다. 이제는 처리 할 수 ​​있지만 제안에서 텍스트를 계속 삽입하면 텍스트에서 실제로 1이어야하는 무작위 문자 (무효 또는 비어 있음)가 생성됩니다. 문제는 afterInput이 현재 커서 위치와 완전히 일치하지 않는다는 것입니다. 심지어 커서를 텍스트의 시작 부분으로 이동 한 다음 끝까지 (같은 결과) 이동하려고했습니다.

다행히 BeforeInput 방법은 완벽하게 작동

...

지금 내가 해결 수정하거나 이것을 설명 할 수있는 방법에 대한 제안을 크게 감상 할 수 있습니다.

편집 : 문자 인코딩 또는 Microsoft 캐리지 리턴이 어떻게 든 손상된 것으로 의심됩니다.

답변

0

여러 가지 문제가 이것의 원인입니다. 첫째, Microsoft는 숨겨진 문자를 사용합니다. 두 번째 : iOS 응용 프로그램은 movecursor를 처리하는 방법에 대해 약간의 제어권을 가지고 있는데, 이는 키보드 확장이 작동하는 방법과 충돌 할 수 있습니다. 대부분의 키보드 확장이 상당히 간단하기 때문에 일반적으로 큰 문제는 없지만 복잡한 텍스트 분석 및 처리를 원할 경우 버그가 있습니다.