web-dev-qa-db-ja.com

UITextFieldのtextContentTypeプロパティを取得して何かを行うにはどうすればよいですか?

ITextFieldのtextContentTypeプロパティに関するドキュメントです

このプロパティを使用して、キーボードとシステムに、ユーザーが入力するコンテンツの予想される意味上の意味に関する情報を提供します。たとえば、確認メールを受信するためにユーザーが入力するテキストフィールドにUITextContentTypeEmailAddressを指定できます。ユーザーがテキスト入力領域に入力することを期待するコンテンツに関するこの情報を提供すると、システムが適切なキーボードを自動的に選択し、キーボードの修正を改善し、他のテキスト入力の機会との積極的な統合を実現できます。

各テキスト入力領域の予想される意味の意味はできるだけ具体的に識別する必要があるため、1つのtextContentTypeプロパティに複数の値を組み合わせることはできません。使用できる値については、 テキストコンテンツタイプ を参照してください。デフォルトでは、このプロパティの値はnilです。

これは簡単なようですが、実際にこれを実行する方法を理解できません。簡単なデモアプリを作成し、テキストフィールドを追加して、self.textField.textContentType = UITextContentTypeEmailAddress。その後、iOS 10.0.1を搭載したiPhone 7で実行しました。

少なくとも私は、これを明示的に設定する必要なく、電子メールキーボードを自動的に選択することを期待していました。そうではありません。iPhoneには標準のキーボードが搭載されています。

また、QuickTypeの候補として自分のメールアドレスを表示することも期待していました。これが他の場所で発生することを確認しました。Safariを使用していて、メールフィールドを編集していることが検出されると、自宅と職場のメールアドレスが候補として表示されます。繰り返しになりますが、ドキュメンテーションで推奨されていますが、ここではそうしません。

keyboardTypeUIKeyboardTypeEmailAddressに設定したとしても、期待していたQuickTypeの提案がまだ得られません。

この新しい機能について説明するWWDCの話があります ですが、この単一のプロパティを設定する以外に何かをする必要があるという提案はありません。

私はいくつかのステップを欠いていますか、またはこれは実際に私が期待していることをしていませんか?

24
robotspacer

これはついにiOS 11のサードパーティアプリでサポートされます。iOS11ベータ1にインストールされたiOS 10.3 SDKを使用してビルドされたアプリがあります。textContentType = UITextContentTypeEmailAddressそして、これらは私の連絡先カードの2つのメールアドレスを正しく示しています。また、textContentType = UITextContentTypePostalCodeそれは私の郵便番号を正しく示唆しています。

既存のタイプに加えて、iOS 11はUITextContentTypeUsernameUITextContentTypePasswordも追加します。これらは アプリのパスワードオートフィル をサポートするために使用できます。

9
robotspacer

参考までに(GoogleとApple docs)でほとんど見つけることができなかったため):

新しいiosでAppleは新しい機能を提供しました(画像を見てください)。これらは descriptionwwdc についてです。

enter image description here

4
Nik Kov