2017-09-24 17 views
1

iOS 11에서 비밀번호 자동 채우기를 지원하는 데 필요한 모든 앱 및 서버 변경 사항을 구현했으며 제대로 작동합니다. 좀 더 잘 작동하고 싶습니다.사용자가 UITextField에서 비밀번호 자동 채우기를 사용하는 경우를 감지하는 방법

내 사용자 이름 및 암호 필드는 UITextFields입니다. 사용자가 두 개의 UITextField 중 하나를 "자동 채우기"했을 때를 식별하고 싶습니다. 그래서 다음 단계로 진행할 수 있습니다. 현재 사용자가 항목을 자동 완성 한 다음 화면 키보드의 "다음"버튼을 눌러 앞으로 이동해야합니다. 사용자를 대신하여이 작업을 실행하고 싶습니다.

WWDC2017 암호 자동 채우기 세션은 UITextFieldTextDidChange를 사용한다고 말합니다. 이것은 작동하지만 물론 사용자가 해당 입력란에 수동으로 입력 할 때도 트리거됩니다.

내 생각에 이전 버전의 텍스트를 새 버전의 텍스트와 비교하여 길이가 0에서 몇 가지 최소 길이 (2 이상) 이상으로 증가한 경우 사용자가 자동 ​​채우기를 사용했다고 가정합니다. . 대부분의 경우 작동하지만 거짓 트리거 (느린 장치에서 빠른 입력)가 발생할 위험이 있습니다. 그래서 나에게 이것은 위험한 가정 일 수 있습니다.

비밀 번호 자동 완성이 UITextField에 사용되었는지 확인하는 방법이 더 확실한 사람이 있는지, 아니면 잘못된 트리거에 대한 걱정이 근거가 없다고 생각하는지 궁금합니다.

+0

또한 사용자가 실제로 앱의 분석에 사용법을 추가하여 비밀번호 자동 채우기를 사용하는지 알고 싶습니다. 1Password도 마찬가지입니다. –

답변

0

나는 더 나은 해결책이 있다고 생각하지 않습니다.

내가 알아챈 사실 중 하나는 텍스트 필드가 비어있는 경우에만 자동 완성이 사용 설정된다는 것입니다.

텍스트 필드가 빈 암호에서 최소 암호/사용자 이름보다 큰 길이로 변경된 경우 자동 채우기/붙여 넣기가 가장 가능성이 높습니다.

shouldChangeCharactersIn을 사용하여 UITextField의 변경을 감지했습니다. 델리게이트 메서드가 호출되기 전에 키보드의 텍스트를 함께 일괄 처리 할 수있는 경우가 있는지 확실하지 않습니다.