【SwiftUI】MultiLine TextField 複数行入力する(iOS16/iPadOS16)

SwiftUI

iOS16/iPadOS16ではTextFieldで複数行の入力が可能になりました。
以前は改行も出来ず、画面に収まらない場合は横にスクロールしていました。
しかし今回TextFieldに追加されたaxis引数を使用する事で複数行使用する事が可能になります。

@State var text = ""

TextField("", text: $text ,axis: .vertical)

これだけの簡単なコードでMultiLine TextFieldが実現する様になりました。
デフォルトはhorizontalで以前のままです。

なおlineLimitは表示する行数幅のみの指定であり、入力データの行数には影響しないので気をつけてください。
スクロールするだけで指定した行数以上の入力が可能です。
恐らくonChangeか何かで入力チェックする事になると思います。

また、previewやシミュレータでハードウェアキーボードを利用した場合は、
enterのみではフォーカスが外れ、alt+enterで改行な事に気を付けてください。

コメント

タイトルとURLをコピーしました