[iOS 10] UITextContentType を使って住所などの入力を補完する
UITextContentType
UITextContentType は iOS 10 から追加された、入力内容を補完する目的で使う型です。UITextInputTraits プロトコルの textContentType
プロパティにセットすることができるため、UITextInputTraits に準拠している UITextField と UITextView に設定することができます。
UITextContentType を設定すると、他のアプリなどで最近使用された情報が、入力候補 (QuickType) として表示されるようになります。Proactive Suggestions と呼ばれているものです。
本記事では、住所の入力補完を試してみました。
実装する
試すと言っても非常に簡単で、対象となる UITextField または UITextView の textContentType
プロパティにセットするだけです。まずは適当な Scene (View Controller) を Storyboard に用意し、UITextField を配置します。そして ViewController クラスに textField
というプロパティでアウトレット接続しておきます。
あとは viewDidLoad
メソッドなどのタイミングで、textContentType
プロパティに UITextContentType をセットします。
import UIKit class ViewController: UIViewController, NSUserActivityDelegate { @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() textField.textContentType = UITextContentType.fullStreetAddress } }
ここでは fullStreetAddress
をセットしました。これで住所が入力できます。それ以外にも都市名だけ入力する addressCity
などもあります。
実行する
アプリをインストール (デバッグ) したら、まずマップで適当な場所を表示します。
次にアプリを開いて文字を入力しようとすると、先ほど表示した場所が候補として表れます。
選択すると、実際に入力されます。
まとめ
アプリに入力フォームなどを取り入れている場合、設定しておくとユーザーに優しいちょっとしたおもてなしになります。ぜひ取り入れていきましょう。
実は住所以外にも、クレジットカード番号の creditCardNumber
や、人物名の name
などが定義されています。まだ試せていないので、こちらも引き続き調査したいと思います。