保存されたユーザー名とパスワードの候補にオートフィルをiOS 11で正常に実装しました。
ログインビューコントローラに2つのテキストフィールドがあり、1つは電子メール用、もう1つはパスワード用です。コンテンツタイプは次のように定義されます。
メール/ユーザー名のテキストフィールド設定
パスワードテキストフィールドの構成
これは以前はiOS 11で正常に機能していましたが、開発用iPadをiOS 12にアップグレードした後、アプリはユーザー名フィールドのメールを提案し、パスワードフィールドを編集すると次のようになります。
私のアカウント作成ビューコントローラーには、電子メール、パスワード、パスワードの再入力の3つのテキストフィールドがあります。コンテンツモードは次のように設定されます。
minlength:8;
minlength:8;
メールアドレスフィールドを編集するとき、それはメールアドレスを適切に提案します。ただし、パスワードとリピートパスワードのフィールドでは、新しいパスワードを提案するのではなく、保存されているパスワードを提案します。
new password
に設定し、アカウント作成パスワードフィールドをpassword
に設定するnone
に設定し、アカウントフィールドを作成して、オートフィルが自動的に処理できるようにします保存されているユーザー名とパスワードの候補がiOS 12で再び機能するように、何を変更する必要があるか考えていますか?
ありがとう!
以下の@kralexからのリクエストに応じて、ストーリーボードのログインビューコントローラのビュー階層を以下に示します。
...そしてデバイス上:
アップルは、オートフィルまたは新しいパスワードなど、必要と思われるものを推測するために、いくつかのヒューリスティックを行っています。ただし、場合によっては失敗することがあります。
あなたの場合、問題は「アカウント作成ボタン」に関連しています。申し込みフォームだとシステムに思わせます。
これを修正する最も簡単なオプション:サインアップUIButtonをUILabelに置き換え、タップを処理するtapRecognizerを追加します。
同様の問題があり、AppleのヒューリスティックがView Controllerのクラス名を利用して、新しいパスワードを提案するか、既存のパスワードを使用するかを決定していることがわかりました。 textContentType
sに正しいUITextField
を設定しても、コントローラーの名前が使用されるようです。
私のUIViewController
はサインアップとログインの両方を同じ画面で実行していますが、コントローラーの名前はRegistrationViewController
です。テストのためにLoginViewController
に変更したところ、ログイン部分が機能し始めましたが、登録ビットはログインのように機能しました。正しいtextContentType
sを設定しても!
実際にUIViewController
sを尊重するために、登録またはログインを意味しないtextContentType
の名前を変更する必要がありました。それはひどいです。本当にひどい。
これがあなたに起こっている/起こっていた理由の少なくとも一部は、あなたがあなたの言葉を信じられないほど信じられないように、ビューコントローラの最初にWord Welcome
を持っているためだと思います。
ちなみに、私はRegistrationLoginViewController
(登録設定を選択)とLoginRegistrationViewController
(ログイン設定を選択)を試してみましたが、どちらも機能しませんでした。両方を同じコントローラ上に置きたい場合は、Appleのヒューリスティックを回避する必要があります。