前回、SwiftUIの重要なしくみである @State を紹介しました。@Stateを用いることで扱えるオブジェクトも増えます。今回紹介する TextField もその1つです。
- 前回のコードに続けて書く
- @State var input_text:String = “あいうえお” を追加
- ユーザが入力できる TextField オブジェクトを追加
- TextField( “空文字時の表示”, text: つなぐ文字列変数 )
- TextFieldへのユーザ入力によって値の変化が発生する
- 値の変化を受け入れるため、TextFieldに@Stateの文字列変数を紐づける
- 値を渡すとき $ をつける
- 変数input_textが つなぎ先 であることを示す
- 値を渡すとき $ をつける
- Text( input_text ) を追加
- input_textの変化を画面に反映する
@Stateの変数をつなぐことでTextFieldが動作します。まずコードを書き動かしてみましょう。次に結果の下にある説明を読んでください。
コード
|
|
結果
TextFieldへの入力後
@StateとBinding
TextFieldはユーザの入力で値が変化するオブジェクトです。よって変更可能な領域(@Stateの変数)を用意する必要があります。今回のコードでは @State var input_text をつくりTextFieldにつなげます。これを Binding と呼びます。@Stateの変数に$をつけるとBinding変数 に変化し、TextFieldにつなげるようになります。
別の視点でみれば 「$をつけて渡した変数は、どこかで自由に書き換えられて良い許可を出している」 と捉えることもできます。