[SwiftUI]「TextField」でキーボードを閉じた時に処理を行う方法

SwiftUI
スポンサーリンク

方法

TextFieldでキーボードを閉じた時に処理を行う方法は2つあります。

onCommit

技術, コンピュータ, コード, Java スクリプトの設定, 開発者, プログラミング, プログラマ

ひとつは、TextFieldの引数のonCommitを使う方法です。

onCommitは、入力が終了した時(エンターキーが押された時)にクロージャーを呼び出します。

クロージャーでやりたい処理を行えばいいのです。

TextField("テキスト", text: $text,
                      onEditingChanged: { _ in
                
            }, onCommit: {
                //終了時の処理
            })

onEditingChanged

もうひとつは、同じくTextFieldの引数のonEditinChangedを使う方法です。

この引数では、編集が終了したタイミングを引数で判定して、処理を行うことができます。

TextField("テキスト", text: $text,
                      onEditingChanged: { start in
                
                        if start {
                            
                        } else {
                            //終了時の処理
                        }
            }, onCommit: {})

startには、編集開始時にtrue、終了時にはfalseが渡されます。

それを利用してfalseの時に終了時の処理を行います。

この方法は、onCommitに比べて、編集終了のタイミングが曖昧なので、オススメはしません。

まとめ

キーボードを閉じた時に、処理を行う方法は次の2つです。

  • TextFieldのonCommitを使う
  • TextFieldのonEditingChangedを使う(非推奨)

参考

合わせて読みたい記事

コメント

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