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

ひとつは、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を使う(非推奨)
コメント